Kotlin符号记录: ?、?:、::

? 问号放在变量后,永远不报空指针

val list: ArrayList<String>? = null;
if(list?.size?: 0 > 0) {  //问号放在变量后,永远不报空指针
}

?: A变量?:B变量:当A变量为空时 返回B

        when(list?.size ?: 0) {  // A变量?:B变量:当A变量为空时 返回B
            0
                -> Log.i(TAG, "size is 0")
            1
                -> Log.i(TAG, "size is 1")
            else
                -> Log.i(TAG, "size > 1")

        }

:: 传参是方法

    Log.i(TAG, "-> addFunction: " + chengFunction(1,2,::addFunction))
    fun addFunction(a: Int, b: Int): Int {
        return a+b;
    }

    fun chengFunction(a: Int, b: Int, method: (a: Int, b: Int) -> Int): Int {
        return a * b * method(a,b);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、lateinit 变量的关键字,可以不用在定义变量的时候就设置初始值 二、原有项目一些涉及到apt的第三方库,...
    许先森的许阅读 1,192评论 1 2
  • 本篇参考资料《第一行代码 第三版》 2020.4月出版本篇文章只是本人看书的理解和整理的笔记,更完整的内容还在书上...
    番茄tomato阅读 607评论 2 3
  • 一: 什么是防抖和节流?有什么区别? 防抖: 触发高频事件n秒后函数只会执行一次,但在n秒内高频事件如果再次触发,...
    viwei阅读 183评论 0 0
  • 1. 简介 Java代码编译后生成的并不是计算机可以识别的二进制语言,而是特殊的class文件,这种class文件...
    MCCorleone阅读 846评论 0 0
  • kotlin 将一个activity的java文件转为kotlin文件 最简单的转化方式 android stut...
    沉迷学习_日渐发福阅读 901评论 0 1