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

kotlin类型可为空,进行空安全的区别

定义一个可为空的变量b(String?),默认没有?是不可以为空的

var b: String? = "Kotlin"
b = null
print(b)
// 输出 null

默认不可为空

var a: String = "Kotlin"
a = null
// 编译器报错,null 不能被赋给不为空的变量

空安全调用(a?),相当于进行了判空操作

var a: String? = "Kotlin"
print(a.length) // 编译器报错,因为 a 是可为空的类型
a = null
print(a?.length) // 使用?. 的方式调用,输出 null

T 代表不可为空类型,编译器会检查,保证不会被 null 赋值
T? 代表可能为空类型
不能将 T? 赋值给 T
使用 instance?.fun() 进行空安全调用

http://www.dtcms.com/a/306425.html

相关文章:

  • Prometheus实战教程 02 - Prometheus 配置详解
  • 歌尔微报考港交所上市:业绩稳增显韧性,创新引领生态发展
  • 从一开始的网络攻防(十四):WAF绕过
  • 在 CentOS 7 上安装 MinIO
  • 扣子,正式拥抱开源!
  • [SKE]UVM环境下OpenSSL加密算法参考模型设计
  • 过滤器Filter
  • 光谱相机自动调焦曝光控制
  • 基于定制开发开源AI智能名片S2B2C商城小程序的B站私域流量引流策略研究
  • RAG实战指南 Day 29:RAG系统成本控制与规模化
  • 技术赋能幼儿园毕业季:从数字化纪念到成长数据可视化
  • django-3模型操作
  • 疯狂星期四文案网第24天运营日记
  • cmake项目基本demo
  • AWS IAM:安全访问管理的核心指南
  • 开发避坑短篇(10):ArithmeticException无限循环小数的精确处理方案
  • 地图可视化实践录:显示高德地图和百度地图
  • JavaWeb前瞻—JDBC
  • Rabbitmq中常见7种模式介绍
  • QString 内存机制详解
  • 【Excel】制作双重饼图
  • 恢复IP地址
  • 明远智睿V2H核心模组:工业4.0时代的“性价比革命”
  • 双塔模型 + 自监督学习:解决长尾物品表征难题
  • IBus vs. Fcitx5:一场 Linux 输入法框架的正面交锋
  • Maximum Subarray Sum
  • Redis高可用性
  • CSM7020L 磷酸铁锂电池充电管理的太阳能草坪灯 LED 驱动芯片 SOT23-6封装 带多种反接功能
  • LLM之RAG理论(十八)| ChatGPT DeepResearch 深度研究功能全面技术分析报告
  • 使用Docker 在Rocky Linux 9.5上在线安装Dify