美文网首页
Kotlin中const val和val的区别

Kotlin中const val和val的区别

作者: Bluwil | 来源:发表于2019-04-10 23:58 被阅读0次

const val使用情景

  • 只能在Top-level,object和companion object的成员中声明
  • 只允许String或者原始属性初始化
  • 不能自定义get()

使用如下:

const val PI = 3.14 //Top-level 顶层声明

object Singleton {
    const val constStr = "constStr" //在object的成员中声明
    val valStr = "valStr"
}

class MyClass {
    companion object {
        const val comConstStr = "comConstStr" //在companion object中声明
    }
}

const val和val的区别

object Singleton {
    const val constStr = "constStr" //在object的成员中声明
    val valStr = "valStr"
}

查看上面代码的字节码

...
public final static Ljava/lang/String; constStr = "constStr"
...
private final static Ljava/lang/String; valStr
...
public final getValStr()Ljava/lang/String;
...
  GETSTATIC example/Singleton.valStr : Ljava/lang/String;

由此可见,constStr被public final static修饰,而valStr被private final static修饰。并且valStr的值是通过getValStr()去获取的,const修饰的constStr是直接获取的,所以就常量而言为了提升效率最好用const修饰。

相关文章

  • Kotlin中const val和val的区别

    const val使用情景 只能在Top-level,object和companion object的成员中声明 ...

  • Kotlin之const val和val

    const的使用 const 必须修饰val const 只允许在top-level级别和object中声明,使用...

  • Kotlin之const val和val

    1、const的使用 const 必须修饰val kotlin中const只能用在顶级属性,以及object对象的...

  • [Kotlin] 剖析val与const val的区别

    Kotlin中val与const都有不可修改或者甚至是常量的含义,那它们存在的是否重复?有没有差别呢? val与c...

  • Kotlin中var和val区别

    前几天朋友圈刷爆了关于Kotlin成为Android官方语言的新闻,为了体验一下,开始学习Kotlin的基础语法。...

  • Kotlin之const val、val以及@JvmField修

    我们先看看kotlin官方文档的解释 val 声明一个只读属性(也称作只读变量)或局部变量如果被声明的变量是方法内...

  • Kotlin中var和val 的区别

    var和val均为Kotlin开发中的关键字定义变量,两者虽然长得很像但是作用大不相同。 var为可变变量,即可以...

  • Kotlin中var和val的区别

    Kotlin中有两个关键字定义变量,这两个关键字外形看着差别很小就只差了一个字母,但实际差别很大的。

  • Kotlin秘籍之变量

    Kotlin中怎样声明一个变量 kotlin中声明变量需要使用val和var关键字 例如: var 和 val的区...

  • Kotlin如何预防空指针和解决“!!”

    用Val而不是Var在 Kotlin 中 val 代表只读,var 代表可变。建议尽可能多的使用 val。val ...

网友评论

      本文标题:Kotlin中const val和val的区别

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