Kotlin中!! 和 ?的使用

1、?修饰申明在成员变量的类型后面

表示这个变量可以为null,例如:

在类中成员变量

private var mAa: AlphaAnimation? = null

在方法中局部变量:

var mAa: AlphaAnimation? = null

在方法传参的形式参中:

override fun initView(savedInstanceState: Bundle?) {
 
}

2、?放在对象后面代表该对象如果为null则不处理后面逻辑,!!放在对象后面代表该对象如果为null则抛异常

例如:

//tv_appconfig为null会抛异常

tv_appconfig!!.text = CallSystemFunUtils.getAppVersionName(baseContext) 

//tv_appconfig为null后面代码不执行

tv_appconfig?.text = CallSystemFunUtils.getAppVersionName(baseContext)

这里要控制好度,那些代码为空不想让它执行,那些代码为空想让它抛异常得到错误信息。

3、!! 放在方法传递实参后面,也是代表不能为null,为null会抛异常

rootView!!.startAnimation(mAa!!)

4、如果想要执行一段非空代码块,建议使用let操作符

例如:object?.let{  //object非空才会执行代码块

       it.todo()

}

5、尽量少使用 !!,多使用?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值