当前位置: 首页 > news >正文

kotlin空类型安全 !! ?. ?:

1、定义可空类型

fun main(){// 定义可空类型var x:String? = "hello"x = null
}

2、!! 强转类型

定义可空类型之后,如果使用其内置方法,编译不会通过,因为值有可能为null,可以使用 !! 把类型强转为不可空:

fun main(){// 定义可空类型var x:String? = "hello"// 此时x值确定为不可空类型,所以可以调用length方法val y =  x!!.length // y 类型为 int 类型println("${y.javaClass.simpleName}") // int
}
注意事项:上边!! 运算符不是安全的,因为如果该值是否为空,会报空指针异常。

3、?.   安全访问运算符

定义及使用

fun main(){// 定义可空类型var x:String? = "hello"// 获取字符串长度:如果x不为空,则返回其长度,否则返回0var y = x?.length?:0println(y) // 5x = nully = x?.length?:0println(y) // 0
}

注意事项:

(1) ?.  为安全访问,判断逻辑是:x?.length  只有x值不为空时,才会调用 .length。

(2)上边 ?: 运算符 是安全的,判断逻辑是: 如果 ?: 前边值为空,则使用后边定义的值。

http://www.lryc.cn/news/379278.html

相关文章:

  • 通过 WireGuard 组建虚拟局域网 实现多个局域网全互联
  • qmt量化交易策略小白学习笔记第47期【qmt编程之期货仓单】
  • 点云处理中阶 Sampling
  • 为什么print语句被Python3遗弃?
  • 067、Python 高阶函数的编写:优质冒泡排序
  • 【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识
  • AI学习指南机器学习篇-KNN的优缺点
  • 全网最全!25届最近5年上海理工大学自动化考研院校分析
  • LANG、LC_MESSAGES和LC_ALL
  • 生成式AI和LLM的一些基本概念和名词解释
  • python项目(课设)——飞机大战小游戏项目源码(pygame)
  • Chatgpt教我打游戏攻略
  • 最全信息收集工具集
  • redis类型解析汇总
  • Unity3d自定义TCP消息替代UNet实现网络连接
  • git fetch 和 git pull区别
  • 冲击2024年CSDN博客之星TOP1:CSDN文章质量分查询在哪里?
  • 高性能并行计算华为云实验一:MPI矩阵运算
  • 库卡机器人减速机维修齿轮磨损故障
  • 【C/C++】我自己提出的数组探针的概念,快来围观吧
  • ArcGIS图斑分区(组)排序—从上到下从左到右
  • React useRef 组件内及组件传参使用
  • Intelij IDEA中Mapper.xml无法构建到资源目录的问题
  • 2024.6.23周报
  • 鸿蒙实战开发:网络层的艺术——优雅封装与搭建指南(中)
  • docker in docker 连私有仓库时报错 https
  • mac怎么压缩pdf文件,苹果电脑怎么压缩pdf文件大小
  • 兴顺物流管理系统的设计
  • 力扣(2024.06.21)
  • 飞机大战java