代码之家  ›  专栏  ›  技术社区  ›  Rasoul Miri

内置Kotlin后的零值

  •  -2
  • Rasoul Miri  · 技术社区  · 6 年前

    在我的类中,扩展约束布局。我已经在类中定义了val类型变量。 在调试模式下运行程序之后,我看到所有变量都是零。 为什么会这样?

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  2
  •   yole    6 年前

    使用初始值设定项定义变量时,Kotlin编译器将生成一个构造函数,该构造函数将按顺序执行所有初始值设定项。在执行初始值设定项之前,相应字段的值将为0,这是屏幕截图上显示的状态。

    对于值,例如 IMEOPTIONS_ACTION_DONE ,似乎是常量,不应该使用常规类属性。相反,你应该把它们放到 companion object 或者在文件的顶层。