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

编码规范

无冲突的地方默认使用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 关键字导入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值