01-Kotlin编程风格
4.1 Kotlin编程风格
制定编程规范的目的是增强代码的一致性,让程序具有良好的可读性,利于项目成员和后期代码的维护。
作为一门比较年轻的编程语言,Kotlin在保留了面向对象编译语言优点的同时,也借鉴了现代函数式编程语言的诸多特点。
1.命名规范
在Kotlin开发中,对于包、类、常量和方法都会涉及命名,Kotlin默认使用Java的命名规范。
- 使用驼峰法命名,避免命名含有下划线。
- 类型名命名时以大写字母开头。
- 对方法和属性进行命名时以小写字母开头。
- 对于公有函数,应撰写相关函数文档。
良好的命名风格,可以极大地提高代码的可阅读性和可维护性,是软件开发人员需要具备的基本技能。
2.Lambda表达式
在Lambda表达式中,大括号左右两边要加空格,分隔参数与代码体的箭头左右两边也要加空格。在使用Lambda表达式时,应尽可能避免将其写在圆括号中。在非嵌套的Lambda表达式中,最好使用默认参数“it”来替代显式声明参数名,而在嵌套参数的Lambda表达式中,参数应该显式声明。
list.filter { it > 10 }.map { element -> element * 2 }
3.冒号
类型和超类型之间的冒号前要有一个空格,而实例和类型之间的冒号前不要有空格。代码如下。
interface Foo<out T : Any> : Bar { // T和Any是继承关系,冒号前面有空格
fun foo(a: Int): T // a和Int是类型和对象的关系,冒号前面不需要空格
}
4.类头格式化
类头如果只有少数几个参数,则可以写在一行。
class Person(id: Int, name: String)
如果参数比较多,则应当进行格式化。同时,对于包含多个接口的情况,应放置在超类构造函数中。代码如下。
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name),
KotlinMaker {
// ……
}
5.Unit类型
如果函数返回Unit类型,则该返回类型需要省略。
fun foo() {
// 省略": Unit"返回类型
}
6.注释
有编程经验的读者对注释肯定不会陌生,注释可以提高程序代码的可读性,方便人们更加轻松地了解代码。和大多数编程语言一样,Kotlin支持行注释及块注释。
// 这是一个行注释
/* 这是一个多行的
块注释。 */
7.方法和属性的选择
在某些情况下,无参的函数与只读属性可互换通用。虽然语义相似,但在以下情况中,更多的是选择使用属性而不是方法。
- 不会抛出任何异常。
- 具有O(1)的复杂性。
- 容易计算(或者运行一次之后缓存结果)。
- 每次调用返回同样的结果。