编码习惯
Kotlin 的语言编码风格
命名风格
命名风格默认和 Java 编码习惯一样,比如:
- 命名使用驼峰风格(命名中避免出现 _ )
- 类型以大写字母开头
- 方法和变量以小写字母开头
- 缩进使用4空格
- 公共方法需要说明文档,在 Kotlin Doc 中有说明
冒号
在分隔两个类型时,冒号前面需要空格;在分隔实例和类型时冒号前面没有空格。
interface Foo<out T : Any> : Bar {
fun foo(a: Int): T
}
匿名函数
在匿名函数中,大括号两边需要留有空格,同样的,分隔参数和函数体的箭头两边也需要留有空格。可以的话,匿名函数外层需要用圆括号包裹。
list.filter { it > 10 }.map { element -> element * 2 }
在匿名函数中,短的非嵌套的表达式推荐使用it
习惯用法,而不用声明参数。在嵌套的表达式中,必须声明参数。
函数头格式
只有几个参数的 class 可以写在一行里。
class Person(id: Int, name: String)
Class头比较长的时候,需要格式化,每一个主要的构造参数需要单独缩进一行。闭括号也需要单独一行。如果使用了继承,父类的构造器调用或者接口的实现需要和圆括号放在同一行:
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name) {
// ...
}
有多个接口时,父类的构造器调用需要写在第一行,每个接口需要换行:
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name),
KotlinMaker {
// ...
}
构造器参数可以使用固定的缩进,或者延迟的缩进(固定缩进的两倍)
Unit类型
如果函数返回的是Unit
,返回的需要省略返回类型:
fun foo() { // ": Unit" 在这里需要被省略
}
函数和属性
当函数没有参数的时候,可能可以被替换为只读属性。尽管语义是相似的,因为语言风格的原因使用后者而不是前者。
在遇见一下情况是更倾向于使用属性而不是函数:
- 没有抛出异常的操作
- 复杂度为 O(1)
- 计算量小 (或者在第一次运行后有缓存)
- 调用后返回相同的结果
生词表
单词 | 含义 |
---|---|
convention | n.1.集会;(正式)会议,(定期)大会;2.(美国)全国代表大会;政党代表大会;3.协议,公约;契约,合同;4.习惯,习俗,社会习俗 |
underscore | vt. 强调;划线于…下;n. 底线,[计] 下划线 |
indentation | 缩进 |
colon | 冒号 |
Lambdas | 匿名函数 |
brace | n. 支柱;[语] 大括号;曲柄 |
parenthese | n. 括号;圆括号 |
inheritance | n. 继承;遗传;遗产 |
interchangeable | adj. 可互换的;可交换的;可交替的 |
原文链接
http://kotlinlang.org/docs/reference/coding-conventions.html