根底语法
参考这儿 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
要害字
class Person constructor(firstName: String) { /*……*/ }
class Person(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…