代码之家  ›  专栏  ›  技术社区  ›  Lucem

Kotlin命名约定

  •  0
  • Lucem  · 技术社区  · 8 年前

    val PREF_NAME = "onb" 在android工作室收到一个警报 enter image description here

    常量的名称(用const标记的属性,或没有包含高度不可变数据的自定义get函数的顶级或对象val属性)应使用大写下划线分隔的名称:

    const val MAX_COUNT = 8

    val USER_NAME_FIELD = "UserName"

    有什么我遗漏的吗?

    2 回复  |  直到 8 年前
        1
  •  4
  •   zsmb13    8 年前

    我想你要做的是 val 在普通班里,像这样:

    class X {
        val PREF_NAME = "onb"
    }
    

    通过这样做,您将为类的每个实例提供一个单独的属性——尽管它们都具有相同的值,但这与在Java术语中使用单个静态常量并不完全相同。


    用const标记的属性,或没有自定义get函数的顶级或对象val属性

    val PREF_NAME = "onb"
    

    或者在一个 object

    object X {
        val PREF_NAME = "onb"
    }
    

    或在伴生物体内:

    class X {
        companion object {
            val PREF_NAME = "onb"
        }
    }
    

    也可以在这些地方用 const

        2
  •  4
  •   voddan    8 年前

    我猜您的属性是在一个类中,在这种情况下,它既不是顶级的,也不是对象值:

    class A {
        val justAProperty = ""
    }
    
    val TOP_LEVEL_VAL_PROPERTY = ""
    
    object B {
        val OBJECT_VAL_PROPERTY = ""
    }
    

    坦率地说,两者之间的差别很小。我总是对所有属性使用camel case,但对于 const val ,我用大写来表示它们的不同性质。

    推荐文章