- var保留词用于声明变量,val保留词用于声明常量。大多数情况下不需要显示指明变量类型,kotlin 具有类型推导能力,会根据上下文自动推断类型。
- fun保留字用于声明函数。
- override保留字表示重写父类方法或者实现接口中的抽象方法,与 java 不同的是,它必须显示出现在重写方法前( java 允许省略)。
- as保留字用于类型强制转换。
- kotlin 中类型是后置的,在变量名或函数参数列表后跟上: 类型就可以显示指定类型。
- :还用于继承类(取代extends)、实现接口(取代implements)。
- 新建对象时不需要new,而是直接调用构造函数。
- 语句末尾不需要; 但加上也不会有语法错误。
- kotlin 中类和方法默认是final的,他们不能被继承和重写。只有通过加上open后才能被继承和重写。
- kotlin 中没有基本数据类型,而是用其对应的包装类表示。
- 给接口方法添加默认实现时不需要default关键字。
- kotlin 中的语句和表达式的唯一区别是:表达式有值,而语句没有。
- 如果函数体由单个表达式构成,可以省去花括号和return。
- when保留字用于取代switch-case,而且它是一个表达式,返回值是命中分支中最后一表达式的值。
- kotlin 引入了property access syntax,不再需要getter和setter方法,可以直接对属性赋值。
- ?.称为 安全调用运算符 ,只有当调用变量不为null时,才会执行调用,否则整个表达式返回null。这样就避免了防御式编程。
- ?置于类型之后表示这个类型的变量或返回值值可能为null。
- kotlin 使用扩展函数,可以在类体外给类新增方法。
- kotlin 预定了很多扩展函数,其中有一类适用于“对同一个对象做多次操作”。包括also()、apply()、let()、with()。
- 通过data关键词配合主构造函数,kotlin 可以用一行代码声明数据类。
data class Course constructor(var name: String, var period: Int, var isMust: Boolean = false)
data class Student constructor(var name: String, var age: Int, var isMale: Boolean, var courses: List<Course> = listOf())
- 主构造方法是一个用于为类属性赋初始值的构造方法。它通过constructor保留字和类头声明在同一行。
- 保留字vararg用于声明可变参数,带有可变参数的方法可以接收任意个数的参数。
- 可以通过=在声明方法时为参数设置默认值,以减少重载函数。
- 可以通过变量名 =语法在方法调用的时候添加命名参数,增加方法调用的可读性。
- kotlin 标准库预定义了很多处理集合的方法,其中
- filter()的语义是:只保留满足条件的集合元素
- toSet()的语义是:将集合元素去重
- flatMap()的语义是:将嵌套集合中的内层集合铺开
- map()函数的语义是:在集合的每一个元素上应用一个自定义的变换
- asSequence()用于将一连串集合操作变成序列,以提升集合操作性能。