前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Kotlin】空安全 ① ( Kotlin 的空安全机制 | 变量可空性 | 默认变量不可赋空值 | 声明可空类型变量 )

【Kotlin】空安全 ① ( Kotlin 的空安全机制 | 变量可空性 | 默认变量不可赋空值 | 声明可空类型变量 )

作者头像
韩曙亮
发布2023-03-30 18:38:40
1.9K0
发布2023-03-30 18:38:40
举报
文章被收录于专栏:韩曙亮的移动开发专栏
在这里插入图片描述
在这里插入图片描述

文章目录

一、Kotlin 的空安全机制


Java 中的空指针问题 :

在 Java 语言 编写的程序中 , 出现最多的崩溃就是 NullPointerException 空指针异常 ,

该异常是 运行时 才爆出的 , 在 代码编写时 以及 编译期 很难提前排查出来 ;

Kotlin 的空安全机制 :

在 Kotlin 语言 中 , 针对 空指针异常 问题 进行了优化 , 引入了 空安全机制 ,

在代码编写后的 编译期 , 就可以 提前排查出可能出现的空指针异常问题 , 并提前进行处理 ,

这样极大地提高了 Kotlin 程序的 代码健壮性 ;

二、变量可空性


1、默认变量不可赋空值

在 Java 中 , 引用类型的变量 默认为 null 空值 ;

但是在 Kotlin 中 , 变量默认不可为 null 空值 ,

这样所有的 变量 在默认状态下 , 都有一个 默认的实例对象 ,

从而极大的 减少了 空指针异常 出现的概率 ;

代码示例 : 先定义一个 name 变量 , 为其赋值字符串 "Tom" ,

然后再为其赋值 null 空值 ;

代码语言:javascript
复制
fun main() {
    var name = "Tom"
    name = null
}

此时 , 在 IntelliJ IDEA 中 就会提示如下报错信息 :

代码语言:javascript
复制
Null can not be a value of a non-null type String
在这里插入图片描述
在这里插入图片描述

这是因为 var name 变量 默认为非空的 ,

在 Kotlin 中 不允许将 默认变量 赋值一个空值 ,

除非 将该变量声明为 可空类型 ;

2、声明可空类型变量

声明可空类型变量 :

如果要声明一个 可空类型的变量 , 必须 声明该变量的具体的类型 ,

并在该类型后添加 ? 标志 , 具体格式如下 :

代码语言:javascript
复制
var 变量名: 变量类型?

代码示例 : 在下面的代码张红 ,

var name 变量声明为了 String? 可空类型 ,

此时就可以为 该变量 赋值 null 值 ;

代码语言:javascript
复制
fun main() {
    var name: String? = "Tom"
    name = null
}

进行了 String? 可空类型声明后 , 在 IntelliJ IDEA 中 , 就不再进行报错了 ;

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Kotlin 的空安全机制
  • 二、变量可空性
    • 1、默认变量不可赋空值
      • 2、声明可空类型变量
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档