1, 在Java中的 void ,就是Kotlin中的 Unit
2,先变量名,冒号,类型。更利于人类理解。 val name: String? = "Sanding"
3,在Java中 我们使用 + 拼接 字符串 , 但是在Kotlin中,我们可以使用 string template $
val aa: String? = "Hello"
println("$aa World!")
4,在Java中,我们必须写 分号 ; 在Kotlin中 分号是 另一种 含义 当一行有多个句子的时候, 请用分号分开它们。
5,在Java中的,类,包等都是明确的路径,确切的文件。在Kotlin中,文件,包并不严格。源文件可以在任意文件夹内,与目录无关。
6,在写功能逻辑的时候,有时我们会 抽取方法出来,但是这个方法又没有被别的逻辑调用。本质上说,未复用。这个时候可以使用嵌套函数。
7,inline 的作用是 减少Function Stack 的使用,但是会增加代码的长度。
8,Kotlin中有一个类库,但是我们想在它基础上增加方法,怎么办?Kotlin中有 扩展 函数 的 概念。但是,扩展是属于静态解析,无多态属性,你 调用谁,就会使用谁,并不会像Java一样,动态解析。
9,对象表达式,是静态的。任何位置都可以调用。 object Type { }
10,在Java中有很多数据类型,基础数据类型,引用数据类型,包装数据类型等,可以隐式地自动转换。但是在Kotlin中,不允许隐式转换,只能显示转换。 并且,在Kotlin中,只用对象和函数。数字类型有如下几种:Byte,Short,Int,Long,Float,Double.
11,在Kotlin中,默认都是final修饰的,不可继承,如果想继承,则使用open。
12,类型推导能力。比如 val a = 2 它能够推导出 a 属于 Int 类型。
13, is 判断后,还会转成相对应的默认类型。
14,Rang 可以代替写循环。
15,when 是 switch 语句的增强。是表达式的写法,支持各种类型。
16,多行字符串 """ """
17,在Kotlin中,Array代替所有数据类型。无基础数据类型,无包装数据类型,更没有相互之间的转换关系。
18,它的非空安全判断。?
19,默认生成的 getter setter方法 。