您的位置:首页 > 其它

Kotlin 学习笔记(二) 编码规范和导入包

2017-06-24 12:33 260 查看

编码规范

无冲突的地方默认使用Java的编码风格

使用驼峰法命名(并避免命名含有下划线)

类型名以大写字母开头

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

使用 4 个空格缩进

公有函数应撰写函数文档,这样这些文档才会出现在 Kotlin Doc 中

冒号

类型和超类型之间的冒号前要有一个空格,而实例和类型之间的冒号前不要有空格:

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


Lambda表达式

在lambda表达式中, 大括号左右要加空格,分隔参数与代码体的箭头左右也要加空格 。lambda表达应尽可能不要写在圆括号中

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


在非嵌套的短lambda表达式中,最好使用约定俗成的默认参数
it
来替代显式声明参数名 。在嵌套的有参数的lambda表达式中,参数应该总是显式声明。

Unit

如果函数返回 Unit 类型,该返回类型应该省略:

fun foo() { // 省略了 ": Unit"

}


函数还是属性

很多场合无参的函数可与只读属性互换。 尽管语义相近,也有一些取舍的风格约定。

底层算法优先使用属性而不是函数:

不会抛异常

O(1) 复杂度

计算廉价(或缓存第一次运行)

不同调用返回相同结果

类头的格式

放在类相关的内容中

包和导入

源文件通常以包声明开头:

package foo.bar

fun baz() {}

class Goo {}

// ……


源文件所有内容(无论是类还是函数)都包含在声明的包内。 所以上例中 baz() 的全名是 foo.bar.baz、Goo 的全名是 foo.bar.Goo。

如果没有指明包,该文件的内容属于无名字的默认包。

导入

除了默认导入之外,每个文件可以包含它自己的导入指令。 导入语法在语法中讲述。

可以导入一个单独的名字,如.

import foo.Bar // 现在 Bar 可以不用限定符访问


也可以导入一个作用域下的所有内容(包、类、对象等):

import foo.* // “foo”中的一切都可访问


如果出现名字冲突,可以使用 as 关键字在本地重命名冲突项来消歧义:

import foo.Bar // Bar 可访问
import bar.Bar as bBar // bBar 代表“bar.Bar”


关键字 import 并不仅限于导入类;也可用它来导入其他声明

顶层函数及属性

在对象声明中声明的函数和属性;

枚举常量

与 Java 不同,Kotlin 没有单独的 “import static” 语法; 所有这些声明都用 import 关键字导入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Kotlin