【问题标题】:Modifier 'const' is not applicable to 'local variable', why?修饰符“const”不适用于“局部变量”,为什么?
【发布时间】:2021-01-07 12:52:59
【问题描述】:

当我尝试像这样放置const val 时:

const val DRAWABLE_RIGHT : Int = 2

在一个方法中,我得到了错误:

修饰符“const”不适用于“局部变量”

当我像这样将const val 移到班级顶部时:

class MyClass @JvmOverloads constructor(context: Context) : ConstraintLayout(context) {
    const val DRAWABLE_RIGHT : Int = 2
    ...
}

编译器说还是不正确:

const 'val' 只允许在顶层或对象中

top level 是什么意思?

【问题讨论】:

    标签: android kotlin scope constants


    【解决方案1】:

    顶级意味着您应该将变量放在类之外。

    也可以将它放在伴随对象中。

    【讨论】:

    • 顶级意味着在任何类定义之外。该消息说“或在对象中”以描述其他允许的情况。将对象的成员称为“顶级”是不正确的。
    • "也可以将它放在伴随对象中。"不仅仅是伴侣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多