most from reference

命名规则

1.使用驼峰式命名规则,尽量避免在命名中使用下划线

2.类型以大写字母开头

3.方法和属性以小写字母开头

4.使用4个空格缩进

5.public的方法加上注释说明,以便他们能出现在Kotlin Doc中

冒号

分隔子类和父类的冒号前面应该加上一个空格,分隔对象实体和类的冒号前面没有空格

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

Lambdas

在Lambda表达式中,空格用于在大括号周围(前后都有空格),以及分隔参数的箭头,如果可能,一个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" is omitted here

}

方法和属性
在某些情况下,没有参数的函数可以和只读属性互换。虽然语义相似,但也有一些风格上的约定。

更趋向选择属性而不是方法的一些情况:

1.没有throw Exception

2.有o(1)复杂度

3.计算简便(第一次运行缓存)

4.调用的时候返回相同的结果

最新文章

  1. 无需FQ,自建本地CDN,秒上StackOverFlow!
  2. 自适应css 框架 PURE
  3. oracle官方文档12c对应关系
  4. jquery中取消和绑定hover事件的正确方式
  5. java生成解析xml的另外两种方法JAXB
  6. Linux内核中的Kconfig、xx.defconfig、xx.config、Makefile
  7. 【转】div弹出窗口的制作
  8. Load Balancing 折半枚举大法好啊
  9. (转)汉字转拼音HanziToPinyin
  10. php修改排序,上移下移
  11. 深度(Depth)概念
  12. LeetCode——Remove Duplicates from Sorted Array
  13. 解决gnuplot中&#39;Terminal type set to &#39;unknown&#39;不能显示绘图的问题
  14. HBASE完全分布式模式的安装
  15. webservice接口调用存储过程返回失败
  16. scrapy架构简介
  17. 细说tomcat之集群session共享方案
  18. IOS - 执行时 (经常使用函数)
  19. 阿里云 ECS 监控报警设置
  20. LeetCode151:Reverse Words in a String

热门文章

  1. 20145321 《Java程序设计》第7周学习总结
  2. 20145329《Java程序设计》第四周学习总结
  3. python-集合、字典
  4. vCenter Server 6.7 集成 vRealize Orchestrator 7.5
  5. has~和belongsTo的区别?
  6. 简单易用的分页类实例代码PHP
  7. Warsaw U Contest Petrozavo dsk Summer 2011 Training Camp, Monday, September 5, 2011
  8. android AVD启动失败原因之一
  9. Python之NumPy(axis=0 与axis=1)区分
  10. ASP.NET网站部署CentOS操作笔记