【Kotlin】知识点回顾:null问题总结-问号?安全符号 & init 的关键词

背景

对kotlin的项目最近需要优化工程,这就得需要回顾之前的kt的知识点。
例如 null 情况下怎么处理比较优雅。

null 问题总结

kt中对null的处理比较严谨:巧用?!!来实现一些java上实现比较繁琐的东西:
例如 判空 处理:

为了避免空指针,kotlin不让我们给非空变量赋值null,但null在Kotlin中依存在,这种情况下,我们可以使用安全操作符 ?来避免发生空指针异常。当编译器遇到安全调用操作符时,会去检查,如果是null,就会跳过函数的执行,而不会抛出异常。

参考

init 和 构造函数的初始化

kt 中init 和 构造函数的初始化和 java 的语法机制有些差别:
主要就是语法结构不一样,其中的关键 词init

class Person() {

    /*属性*/
    private var gender: Boolean = true

    /*次构造方法*/
    constructor(name: String, gender: Boolean) : this() {
        println("constructor")
    }

    companion object {
    // 单例模式的生成方式
        val instance by lazy {
            Person("yzq",false)
        }

        /*伴生对象中的初始化代码*/
        init {
            println("companion init 1")
        }

        init {
            println("companion init 2")
        }
    }

    /*初始化代码块*/
    init {
        println("Person init 2,gender:${gender}")
    }

    /*初始化代码块*/
    init {
        println("Person init 1")
    }

}

生成的效果:
在这里插入图片描述
以上都是为了回顾kt中的语法知识点。
参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值