kotlin 官方学习教程之编码风格
2017-05-19 20:14
281 查看
本页包含了当前 kotlin 语言的代码风格。
使用 camelCase 命名法(在命名中避免下划线)
类型名称首字母用大写
方法和属性名称首字母用小写
缩进用四个空格
public 方法要写说明文档,这样它就可以出现在 Kotllin Doc 中
在使用简短而非嵌套的 lambda 中,建议使用
具有较多的参数的类应该格式化成每个构造函数的参数都位于与缩进的单独行中。此外,结束括号应该在新行上。如果我们使用继承,那么超类构造函数调用或实现的接口列表应该位于与括号相同的行中。
对于多个接口,应该首先定位超类构造函数调用,然后每个接口应该位于不同的行中:
构造函数参数可以使用常规缩进或连续缩进(双倍正常缩进)。
在下面的情况下,更偏向于属性而不是一个函数:
不需要抛出异常
拥有O(1)复杂度
低消耗的计算(或首次运行结果会被缓存)
返回与调用相同的结果
命名风格
如有疑惑,默认为 Java 编码风格,比如:使用 camelCase 命名法(在命名中避免下划线)
类型名称首字母用大写
方法和属性名称首字母用小写
缩进用四个空格
public 方法要写说明文档,这样它就可以出现在 Kotllin Doc 中
冒号
在冒号区分类型和父类型中要有空格,在实例和类型之间是没有空格的:interface Foo<out T : Any> : Bar { fun foo(a: Int): T }
Lambdas
在 Lambdas 表达式中,大括号与表达式间要有空格,箭头与参数和函数体间要有空格。尽可能的把 lambda 放在括号外面传入list.filter { it > 10 }.map { element -> element * 2 }
在使用简短而非嵌套的 lambda 中,建议使用
it而不是显式地声明参数。在使用参数的嵌套 lambda 中,参数应该总是显式声明。
类声明格式
参数比较少的类可以用一行表示:class Person(id: Int, name: String)
具有较多的参数的类应该格式化成每个构造函数的参数都位于与缩进的单独行中。此外,结束括号应该在新行上。如果我们使用继承,那么超类构造函数调用或实现的接口列表应该位于与括号相同的行中。
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"被省略了 }
函数 vs 属性
在某些情况下,没有参数的函数可以与只读属性互换。尽管语义是相似的,但是有一些风格上的约定在什么时候更偏向于另一个。在下面的情况下,更偏向于属性而不是一个函数:
不需要抛出异常
拥有O(1)复杂度
低消耗的计算(或首次运行结果会被缓存)
返回与调用相同的结果
相关文章推荐
- kotlin 官方学习教程之基本类型
- Kotlin 官方学习教程之接口
- kotlin 官方学习教程之包
- Kotlin 官方学习教程之返回和跳转
- Kotlin 官方学习教程之可见性修饰符
- Python3.2 官方文档教程---编码风格
- kotlin 官方学习教程之基础语法详解
- Kotlin 官方学习教程之类和继承
- Kotlin 官方学习教程之密封类与泛型
- Kotlin 官方学习教程之属性和字段
- Kotlin 官方学习教程之控制流
- kotlin 官方学习教程之语法
- kotlin 官方学习教程之基础语法
- Kotlin 官方学习教程之扩展
- Objective-C基础教程学习笔记(十六)键/值编码
- Swift教程_通过改造官方Sample学习Swift(一)_Element示例简介
- 暗黑风格_学习教程
- Swift教程_通过改造官方Sample学习Swift(三)_Swift基础(对象和类、枚举和结构、协议和扩展、泛型)
- Swift教程_通过改造官方Sample学习Swift(二)_Swift基础(简单值、控制流、方法和闭包)
- 学习ApacheHttpComponents,HttpCore第一部分,基本翻译官方教程