问题:今天在群里摸鱼,有人说问val,终于轮到我装逼了,我马上抢答:val就是final(终于又一个问题我能回答上来了)。然后马上有人啪啪打脸:val不是final,const val才是final。
这下我就不高兴了,好不容易装个逼,才高兴不到2秒钟就被人啪啪打脸。我这个水平学了好几次都是Kotlin从0到1,马上去百度了一下。。。
结果:
1.val=private static final+get()
1.val=public final+get()
const val=public static final
这个区别就决定了java调用时候的区别,一个通过"get属性名()"调用,一个直接“.属性名”调用,后者效率应该要高一点。
2.const只能修饰顶部元素或者object的属性(由这么产生了一些疑惑,关于object和companion object的,下次填补上)
感觉第一点是关键,第二点我还没学到这儿来,暂时不了解