Kotlin变量声明属性

kotlin中的属性声明有两种:var声明普通变量,val声明只读变量(即Java中的final类型)。

1、var可以使用lateinit延迟初始化,val在声明时必须初始化,但两者都可以用abstract修饰,让子类来初始化

2、空安全:当我们使用Java开发时,我们的代码大多是防御性的。如果不想遇到NullPointerException,我们就需要在使用它之前不停地去判断它是否为null。但Kotlin是空安全的,,我们需要通过一个安全调用操作符‘?’来明确地指定一个对象是否能为空:

//这里无法通过编译,Artist 不能是null

var notNullArtist: Artist = null

//Artist 可以是 null

var artist: Artist? = null

//无法编译,artist可能是null,我们需要进行处理

artist.print()

//只有在 artist != null 时才会执行它的print方法

artist?.print()

//只能转换,如果我们在之前进行了空检查,则不需要使用安全调用操作符‘?’调用

if (artist != null){
    artist.print()
}

//我们在确保artist 不是 null的情况下才能这么调用,否则它会抛出异常

artist!!.print()

//使用Elvis操作符来给定一个在artist是null的情况下的替代值

val name = artist?.name ?:"empty"

如果 ?: 左侧的表达式非空,elvis操作符就返回其左侧表达式,否则返回右侧表达式。请注意,当且仅当左侧为空时,才会对右侧表达式求值。elvis操作符右侧也可以使用throw和return等表达式。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值