Соглашения об именах kotlin для "дублирующих" имен свойств? - PullRequest
2 голосов
/ 06 июля 2019

Они на самом деле не дублируют, конечно, я просто не знаю, как кратко описать концепцию. Речь идет о методах получения свойств, которые предназначены для преобразования другого свойства, доступ к которому скрыт. Здесь, позвольте мне объяснить в куске кода:

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

Дети могут изменяться внутри страны, и их также следует подвергать воздействию внешнего мира, но они не должны иметь возможности изменять список. Я думаю, довольно понятная ситуация.

Я интуитивно выбрал соглашение _name, с которым я столкнулся в Angular (машинопись) и c #, где это обычно используется в подобных ситуациях. Но Intellij жалуется, что по соглашению все имена свойств должны начинаться со строчной буквы.

Есть ли другое соглашение об именах для такого рода вещей в Kotlin, или IDE просто не видит, что я пытаюсь сделать (что было бы неудивительно), и я должен просто проигнорировать это?

1 Ответ

4 голосов
/ 06 июля 2019

Да, соглашения о кодировании предполагают добавлять имена частных резервных свойств с подчеркиванием, как вы это делали с _children:

Имена для вспомогательных свойств

Если класс имеет два свойства, которые концептуально совпадают, но одно является частью общедоступного API, а другое - деталью реализации, используйте подчеркивание в качестве префикса для имени частного свойства:

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

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

См. Названия недвижимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...