美文网首页
Kotlin 关键字、修饰符、操作符

Kotlin 关键字、修饰符、操作符

作者: ZoranLee | 来源:发表于2021-11-18 11:12 被阅读0次

    Kotlin中的修饰符关键字分类

    • 类修饰符
    • 成员修饰符
    • 访问权限修饰符
    • 协变逆变修饰符
    • 函数修饰符
    • 属性修饰符
    • 参数修饰符
    • 具体化类型修饰符
    image.png

    类修饰符

    • 抽象类:abstract
    • 不可继承类:final
    • 可继承类:open
    • 注解类:annotation
    • 密封类:sealed
    • 数据类:data

    成员修饰

    image.png

    访问权限修饰

    image.png
    • private 私有,仅当前类可访问
    • protected 当前类以及继承该类的可访问
    • public 默认值,对外可访问
    • internal 整个模块可以访问

    协变逆变修饰符

    image.png
    • in 消费者类型修饰符
    • out 生产者类型修饰符

    属性修饰符

    常量

    参数修饰符

    image.png

    inline 声明在编译时,将函数的代码拷贝到调用的地方(内联)
    vararg 变长参数修饰符
    noinline 不内联参数修饰符, 声明 inline 函数的形参中,不希望内联的 lambda
    crossinline 表明 inline 函数的形参中的 lambda 不能有 return

    具体化类型修饰符

    image.png
    • reified : 使抽象的东西更加具体或真实
    1. 不再需要传参数 clazz
    // Function
    private fun <T : Activity> Activity.startActivity(context: Context, clazz: Class<T>) {
        startActivity(Intent(context, clazz))
    }
    
    // Caller
    startActivity(context, NewActivity::class.java)
    
    

    使用reified 后

    // Function
    inline fun <reified T : Activity> Activity.startActivity(context: Context) {
        startActivity(Intent(context, T::class.java))
    }
    
    // Caller
    startActivity<NewActivity>(context)
    

    https://juejin.cn/post/6844903833596854279
    https://droidyue.com/blog/2019/07/28/kotlin-reified-generics/

    流程控制

    分支语句(if、when)

    循环语句(for、while)

    跳转语句(return、break、continue、throw)

    操作符与重载

    • 优先级
    image.png

    一元操作符

    image.png

    operator 修饰重载操作符


    image.png image.png
    • 递增和递减操作符


      image.png

    二元操作符

    image.png
    • in操作符


      image.png
    • 索引访问操作符


      image.png
    • 调用操作符


      image.png
    • 计算并赋值操作符


      image.png
    • 相等与不等操作符


      image.png

    ===和!==不可重载

    • Elvis操作符?:


      image.png

    “?:”是一个二元运算符,如果第一个操作数为真,则返回第一个操作数,否则将计算并返回其第二个操作数
    Kotlin中没有这样的三元运算符true?1:0,取而代之的是if(true) 1 else 0

    • 比较操作符


      image.png
    • infix函数自定义中缀操作符


      image.png
    image.png

    包声明

    image.png

    相关文章

      网友评论

          本文标题:Kotlin 关键字、修饰符、操作符

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