美文网首页
Android开发kotlin学习(二)

Android开发kotlin学习(二)

作者: _L丶丶 | 来源:发表于2019-03-25 19:49 被阅读0次
    这篇主要讲的是kotlin里面的空安全和区间的部分
    

    1.kotlin的空安全

    为啥子说kotlin是空安全的?和Java相比,kotlin的空安全可以带来哪些便利之处?不啰嗦,直接上代码:

    总的有个比较的对吧,那就这样:写一个方法,返回年龄,类型String,并且调用

    Java写法:


    这里返回空,没为题,那么调用的时候有问题吗? 也没问题,那么跑起来的时候啥问题应该都知道了吧...

    看看再kotlin中会怎么样:


    在你写代码的时候,明确的和你说,这里不能是空的!想运行?门都没有啊......那怎么样才能通过呢?

    ①.明确的返回不为空的数据

    这样是没问题的

    ②.明确的告诉编译器,这里返回的是可空类型

    这样也是可以通过的

    这里就是kotlin的空安全,在kotlin中,在代码的编辑阶段,编译器就会帮你检查对象为空的可能,这时候,要么你要明确的返回一个不为空的数据/对象,要么,你就要告诉编译器我知道这里为空,你可以给我返回,我自己做处理.这是后你可能会疑问了,你加了问好之后,可以返回空了,那不就还是空不安全的吗?那咱们再往后看:

    方法你是写好了,需要调用了,Java的方法不用看,一定是可以调用的,咱们看看当咱们加上?,让方法可以返回空的时候,在你调用的地方会怎么样:


    又给指出来了,这里是可能为空的,需要咱们做处理,这里咱们在加个问好,运行时可以的吗? 没问题,当然可以,在kotlin中,只要你判断了空,那么有值就返回值,没有就打印null,这样可以给咱们带来什么好处吗?有~~,看下面完整的代码

    Java写法:


    image.png

    kotlin写法:



    emmmm....应该很一目了然了,kotlin的空安全可以为我们省去很多的 if(xxx == null) 的判断,可以简化代码. 还有下面种情况,我定义个可空的常量,但是给他赋值不是空的,在我明确知道他不是空的情况下,kotlin里面还是会有空检查机制,在你调用的时候让你需要判断:
    这时候有什么处理办法呢?还是两种:

    2.区间Rang

    区间这个很简单,和我们数学里面的开区间,闭区间相似,直接上代码,解释和注意事项都在代码中

    /**
     * 区间
     *
     * */
    
    val mRange : IntRange = 0..100  //表示0-100的闭区间   等价于[0,100]
    val mRange2 : IntRange = 0 until 50  //表示0-100的半闭区间  等价于[0,50)等价于[0,49]
    val mRange3 : IntRange = 10..1
    
    //Range是ClosedRangede 子类
    
    //Range里面包含的方法   1.isEmpty  2.contains
    fun main(args: Array<String>) {
        //1.mRange3是空的吗
        println(mRange3.isEmpty())    //true
        //2.mRange区间里面包含50吗
        println(mRange.contains(50))  //true
        //50在 mRange 区间里面吗
        println(50 in mRange)         //true
        //mRange2 包含50吗
        println(mRange2.contains(50))  //false
    
        //遍历
        for (i in mRange2){
            print("$i,")
        }
    }
    

    附上运行的结果:


    这篇就是这些了,如有不足,欢迎指出,觉得我会改,你就输了....


    相关文章

      网友评论

          本文标题:Android开发kotlin学习(二)

          本文链接:https://www.haomeiwen.com/subject/rknbvqtx.html