基础语法
参考这里 book.kotlincn.net/text/basic-…
- 使用package声明包,包的声明应处于源文件顶部。main函数是程序入口
- 目录与包的结构无需匹配:源代码可以在文件系统的任意位置
- 类的属性可以在其声明或主体中列出
- 类之间继承由冒号(
:
)声明。默认情况下类都是 final 的;如需让一个类可继承, 请将其标记为open
Kotlin Tour
参考这里 kotlinlang.org/docs/kotlin…
fun声明函数,main是程序入口,val是只读变量,var是可变变量,可以使用模板字符串拼接多个变量
Kotlin中的基本类型
Kotlin和其他语言一样,有集合、数组、Map三种集合类型
Kotlin里面没有三元运算符,可以通过if表达式替代
when和Swift中的Switch类似,既可以做表达式也可以做语句
Kotlin中的函数,如果没有写return,默认返回Unit。类似于swift中的Void
Kotlin中的lambda表达式和Swift中的闭包一样,都是一等公民,可以当做参数或赋值给一个变量或者当做结果被返回,如果是函数最后一个参数可以使用尾随闭包语法,只是语法不太一样。Swift中是大括号包起来用in区分参数和执行体,Kotlin中是大括号包起来用->区分参数和执行体。
Kotlin中有独有的data class,用于存储数据并提供一系列的方法可用,常用的有下面这些
Kotlin中的?:操作符和Swift中的 ?? 一样,当左值为null的时候使用右边的默认值
语法概览
参考这里 book.kotlincn.net/text/d-conc…
- 在 Kotlin 中,所有东西都是对象,在这个意义上讲可以在任何变量上调用成员函数与属性
- Kotlin中enum也是一个class,语法是enum class XX
- 如果主构造函数没有任何注解或者可见性修饰符,可以省略这个
constructor
关键字
1 | kotlin复制代码class Person constructor(firstName: String) { /*……*/ } |
- 类也可以声明前缀有
constructor
的次构造函数。如果类有一个主构造函数,每个次构造函数需要委托给主构造函数, 可以直接委托或者通过别的次构造函数间接委托。委托到同一个类的另一个构造函数用this
关键字即可。这一点类似于Swift中便利构造器convenience - 在 Kotlin 中所有类都有一个共同的超类
Any
,对于没有超类型声明的类它是默认超类 - 默认情况下,Kotlin 类是最终(final)的——它们不能被继承。 要使一个类可继承,请用
open
关键字标记它 - 如果函数没有标注
open
,那么子类中不允许定义相同签名的函数, 无论加不加override
lateinit 修饰符只能用在类体中的属性(不是在主构造函数中声明的 var
属性, 并且仅当该属性没有自定义 getter 或 setter 时),也用于顶层属性与局部变量。 该属性或变量必须为非空类型,并且不能是原生类型
要检测一个 lateinit var
是否已经初始化过,请在该属性的引用上使用 .isInitialized
泛型参数 out、in实现协变与逆变
对象表达式 使用 object 关键字
扩展函数、方法、lambda中this指向 book.kotlincn.net/text/this-e…
注解知识 book.kotlincn.net/text/annota…
通过例子学Kotlin
查看这里 play.kotlinlang.org/byExample/o…
标准函数let,also,with,run 和 apply
1)、let 函数,必须让某个对象调用,接收一个 Lambda 表达式参数,Lambda 表达式中的参数为当前调用者,且最后一行代码作为返回值。
2)、also 函数,必须让某个对象调用,接收一个 Lambda 表达式参数,Lambda 表达式中的参数为当前调用者,无法指定返回值,这个函数返回的是当前调用对象本身
3)、with 函数,接收两个参数,第一个为任意类型参数,第二个为 Lambda 表达式参数,Lambda 表达式中拥有第一个参数的上下文 this ,且最后一行代码作为返回值
4)、run 函数,必须让某个对象调用,接收一个 Lambda 表达式参数,Lambda 表达式中拥有当前调用对象的上下文 this ,且最后一行代码作为返回值。和let函数一样,只是内部访问receiver不一样,let中默认是it,run中是this。相比let来说只是方便了直接访问和修改属性
5)、apply 函数,必须让某个对象调用,接收一个 Lambda 表达式参数,Lambda 表达式中拥有当前调用对象的上下文 this ,无法指定返回值,这个函数返回的是当前调用对象本身。主要用于在代码块内批量修改属性
资料
- Kotlin开始 kotlinlang.org/docs/gettin…
- 基础语法 kotlinlang.org/docs/basic-…
- Kotlin Tour kotlinlang.org/docs/kotlin…
- Learn Kotlin by Example play.kotlinlang.org/byExample/o…
- 知识能力测试 kotlinlang.org/docs/koans.…
- 语法概览 kotlinlang.org/docs/basic-…
- Gradle官网 docs.gradle.org/current/use…
- Gradle入门 book.kotlincn.net/text/get-st…
本文转载自: 掘金