对于 Kotlin 中的任何类,我通常都有一堆不同的属性。我想知道根据这些属性的类型对这些属性进行排序是否有任何转换。我使用的基本类型是
-
var fields
-
private var fields
-
lateinit var fields
-
private lateinit var fields
- 以上所有内容都带有
val fields
-
lazy fields
-
private lazy fields
- 等。
常见的分类是在同一组中声明相同类型的属性。然后我所做的是尝试先声明公共字段,然后再声明私有字段。我想知道怎么样,首先说lazy
和lateinit
的事情怎么样.或者var
之后会发生什么? private var
或lateinit var
或lazy val
?
好吧,我知道人们可以随心所欲地写,但我想知道是否有任何约定,根据其某些未指定的级别列出属性?
来自 Kotlin 文档:
不要按字母顺序或可见性对方法声明进行排序,并且不要将常规方法与扩展方法分开。相反把相关的东西放在一起,以便有人从顶部阅读课程到底部将能够遵循正在发生的事情的逻辑。选择一个订单(要么先是更高级别的东西,反之亦然(,然后坚持下去。
我认为这条规则也可以应用于属性。
我遵循Java/C#编程语言等实践:
First public, then protected, then package level (no access modifier), and then private.
https://www.oracle.com/java/technologies/javase/codeconventions-fileorganization.html
Public.
Internal.
Protected internal.
Protected.
Private.
https://google.github.io/styleguide/csharp-style.html
将相关内容放在一起有时对于实践来说更难,尤其是对于现场声明