Kotlin基础教程-代码编写约定

来源:互联网 发布:js获取radio是否选中 编辑:程序博客网 时间:2024/06/07 18:35

Coding Conventions

命名规范

  • 驼峰标志
  • 类以大写开始
  • 方法以小写开始
  • 4个空格缩进
  • 函数定义需要有说明文档

冒号

当冒号分离类型和超类时,前要加一个空格,但是如果分离实例时,不需要加冒号,戏码代码T和Any之间因为都是对象类型,Foo和Bar也是对象类型,所以冒号前面加了空格,而a和Int以及foo和T之间的冒号,因为a和foo都是实例,所以不加空格

interface Foo<out T : Any> : Bar {    fun foo(a: Int): T}

lambda表达式

lambda表达式中花括号({)两侧都需要添加空格。

list.filter { it > 10 }.map { element -> element * 2 }

在无嵌套的lambda表达式中,it代替显式定义参数变量。但是如果在嵌套的lambda表达式中则需要显式定义。

定义类的header体

类中含有少量参数,需要跟在类名后一行定义完

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

如果函数无返回值,返回类型的定义可以省略

fun foo() { // ": Unit" is omitted here}

函数VS属性

在某些情况下,不带参数的函数和只读属性类似。尽管语义类似,但是两者之间还有一些惯例需要遵守。

如下情况,使用属性更优:

  • 无抛出异常
  • 是O(1)复杂度
  • 计算简单
  • 调用返回相同的类型

请关注我的微信公众号号,实时接收最新文章

这里写图片描述