Kotlin 初始化陷阱。初始化注意事项

 一 注意属性与init中的调用顺序
class Player6() {

init {
val bloodBonus = blood.times(4)
}
val blood = 100;

}

fun main() {

}
像java的静态代码块。和成员变量的顺序是可以这样的
但是在kotlin中不行。因为Kotlin是根据代码顺序进行初始化的

编译成字节码就会是这样

 顺便证明了。init的执行地方是构造方法初始化后。。
可行的初始化为如此
class Player6() {
val blood = 100;

init {
val bloodBonus = blood.times(4)
}

}

fun main() {

}
反编译字节码如下

 陷阱二
class Player7() {
val name: String
private fun firstLetter() = name[0];

Kotlin 初始化陷阱。初始化注意事项最先出现在Python成神之路

版权声明:
作者:Zad
链接:https://www.techfm.club/p/28061.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>