Kotlin中const val和val的区别

2019-04-10  本文已影响0人  Bluwil

const val使用情景

使用如下:

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修饰。

上一篇下一篇

猜你喜欢

热点阅读