android kotlin详解(1)

对于,android 开发人员而言,kotlin的出现给我们带来了福利。

(1)可以减少android开发的代码量

(2)kotlin语言也可应用于js中

(3)后台肯定能使用kotlin进行开发

但,我的这边博客以及后续的kotlin博客肯定不会讲什么基础的,只是讲一些比较细节的东西,这样你们看kotlin官方文档就很简单了。

那,下面我们先来看看,kotlin的 空安全
在kotlin中,空安全,我们肯定先想到的是 “?”,我们依次来看下面这些例子:

var name: String = "lihuan"
name= null // 编译报错:null 不能作为一个非空类型的值

var nickName: String? = "jimTrency"
nickName = null // 编译成功

从而,我们可以知道,想要一个变量为空类型,在对应的位置加个 “?”即可。

     var name: String ?= "lihuan"
     var l = name.length  //编译报错

这是为什么呢?因为你的name 可以为空,所以name.length 可能会报空指针异常,当然在kotlin中肯定是不允许的,这么解决呢?看下面代码

     //编译成功,若name为空,l=null;否则l=name.length
      var l = name?.length  

下面我们再来看看,这一句代码什么意思:

    var name: String ?= "lihuan"
    val l = name?.length ?: -1

意思是:若name不为空,l = name.length,否则:l = -1
即:java写法为:

 if(name!=null){
    l = name.length;
 }else{
     l = -1;
 }

ps: ” ?: ” 为Elvis操作符,如果 ?: 左边表达式非空,elvis操作符就会返回左边的结果,否则返回右边的结果

接着,我们再来看看一种写法:

var name: String ?= "lihuan"
     var l = name!!.length  //编译通过

“ !! ”,这是你告诉编译器,name肯定不为空。若为空呢,这样肯定会报异常了。

最后,我们来看看 as 的用法:

在kotlin中,as 实现 强制转换,例如:

  var user=User()
  var baseUser: BaseUser? = user as? BaseUser

当使用 as 转型的时候,可能会经常出现 ClassCastException。 所以,现在可以使as?安全转型,当转型不成功的时候,它会返回 null。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值