码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • kotlin应对空指针问题


    kotlin应对空指针问题

    一般来讲,引用传来的指针之前,需要进行空指针检查。

    很多语言并没有空指针保护,比如C++ java。

    但是系统复杂,开发人员多了之后,难免会出现引用空指针问题。

    如果网络检查,引用空指针,系统就会跑飞。

    但是,Kotlin默认所有参数和变量不可为空,可以杜绝空指针风险。

    在编译时,就会进行空指针检查。从而修正空指针问题。

    如果遇到必须使用空指针或者空变量,可以使用可为空类型。

    可为空类型是在类型类后面加上?。例如:Int?。

    在对声明为?的类型进行引用时,IDE会提示进行判空。

    kotlin还提供了一些判空语法糖。

    ?.:左侧对象不为空就正在执行右边的方法,为空就什么都不做。

    ?::左侧不为空就返回左侧被判空表达式的结果,为空就返回右边表达式结果

    fun getTextLength(text: String?) = text?.length ?: 0
    
    • 1

    text如果为空,text?.length就什么都不做,表达式的值为NULL,然后整个表达式的值就变为了0.

    对象的let标准函数与判空结合,简化?.判断:

    之前使用?.的时候,相当于每次操作都进行了一次空指针判断。可以用let结合λ表达式来简化。

    let是对象标准函数,会把当前对象传入后面的λ表达式中。

    mycar?.let{
        it.run()
        it.charge()
    }
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    JAVA【常见基础知识】
    【Verilog 教程】6.6Verilog 仿真激励
    如何合并pdf文件,pdf合并教程
    关于#华为#的问题:二、半导体设备:半导体封装设备、半导体扩散设备、半导体焊接设备、半导体清洗设备、半导体 测试设备、半导体制冷设备、半导体氧化设备等(相关搜索:人工智能)
    网络库OKHTTP(3)拦截器扩展,一个好用的网络请求监控工具Chuck
    UI设计模式是什么?有哪些常用的?
    yolo自动化项目实例解析(一)日志格式输出、并发异步多线程、websocket、循环截图、yolo推理、3d寻路
    谷歌牛人发布小说式《算法图解》,竟被人扒下来,在GitHub开源了
    什么是Vue的过渡效果?如何使用Vue的过渡效果?
    [MQ] 交换机与队列的介绍
  • 原文地址:https://blog.csdn.net/kuno_y/article/details/125617442
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号