“重复”属性名称的kotlin命名约定?

时间:2019-07-06 10:08:16

标签: kotlin coding-style

它们并不是真正的重复,当然,我只是不知道如何用简短的方式来描述这个概念。它是关于属性获取器的,该属性获取器仅用于公开隐藏了访问权限的另一个属性的转换。在这里,让我用一段代码来解释:

class MyClass {
    internal val _children = mutableListOf<MyClass>()
    val children: List<MyClass> get() { return _children.toList() }
}

孩子可以在内部进行修改,也应该向外界公开,但是他们不能修改列表。我认为这是一个可以理解的情况。

我已经直观地选择了在Angular(打字稿)和c#中遇到的_name约定,在类似情况下,这似乎是常用的。 但是intellij抱怨,按照惯例, all 属性名称应以小写字母开头。

在Kotlin中是否有关于这种事情的另一种命名约定,或者IDE只是没有看到我正在尝试做的事情(这不足为奇),而我应该忽略它?

1 个答案:

答案 0 :(得分:4)

是的,编码约定建议 就像在_children之前一样,在私有支持属性名称前加一个下划线:

  

支持属性的名称

     

如果一个类具有两个在概念上相同的属性,但一个属性是公共API的一部分,而另一个属性是实现细节,请使用下划线作为私有属性名称的前缀:

class C {
    private val _elementList = mutableListOf<Element>()

    val elementList: List<Element>
         get() = _elementList
}

请参见Property names