这是我参与「第四届青训营」笔记创作活动的第2天
本次学习的是Kotlin的基础知识
Kotlin作为一种更简洁、更高效、更安全的替代Java的语言,目前广泛的应用于Android开发中,本次笔记从Kotlin的基础入手,对学习到的相关知识进行相关的记录。
Kotlin基础
Kotlin中的函数
Kotlin中函数通过关键字fun来声明,参数的类型写在其名称后面,参数列表后面跟着返回类型,他们之间由一个冒号隔开,下面展示了一个函数的基本结构。
fun max(a : Int, b : Int): Int{
return if(a > b) a else b
}
在Kotlin中,if是表达式,而不是语句。 上述函数可以变得更简单,因为在Kotlin中,如果一个函数是由单个表达式构成的,可以省略花括号与return语句。 对于表达式体函数来说,编译器会分析函数体的表达式,并把它的类型作为函数的返回类型,因此可以不声明其返回类型。如下面所示:
fun max(a : Int, b : Int) = if(a > b) a else b
Kotlin中的变量
Kotlin中声明变量的关键词主要有两个:
- val: 不可变引用。 使用val声明的变量不能在初始化后再次赋值,对应Java中的final变量。
- var: 可变引用。 使用var声明的变量可以在初始化后再次赋值,对应Java中的非final变量。
默认情况下我们应该尽可能地使用val关键词来声明所用的Kotlin变量,仅在必要的时候转为var。
kotlin中引入包
Kotlin并不区分导入的是类还是函数,并且允许使用import关键词导入任何种类的声明。当然也可以在包名称后加上.* 来导入特定报的所有声明,但这种导入会使得包内所有的类可见。
枚举与“when”语法
Kotlin中存在when语法,他可以理解为Java中Switch的替代品,但使用地更加频繁,接下来将学习其相关语法:
when也是一个有返回的表达式。但与Java中的switch不同,when语句中不需要对所有分支使用break语句,并且我们也可以把多个值合并到同一个分支,只需要用逗号隔开这些值。如以下代码所示。
fun getWarmth(color: Color) = when(color){
Color.RED, Color.ORANGE, Color.YELLOW -> "warm"
Color.BLACK -> "neutral"
Color.GREEN, Color.BLUE -> "cold"
}
>>>println(getWarmth(Color.ORANGE))
warm
在Java中,switch只允许使用常量作为分支条件,而Kotlin中的when则可以使用任何对象。如下面的示例:
fun demo(any: Any) {
when (any) {
//分支条件为常量
"2" -> print("输入的内容为数字2")
//分支条件为boolean值
is String -> print("输入的内容是String类型的任意变量")
//分支条件为集合
setOf("3", "C") -> print("输入的内容是数字3C")
//分支条件为枚举类中常量的字段
Person.Tom.personName -> print("输入的内容是枚举类Person中变量Tom的姓名")
}
}
同时when语句是可以不带任何参数的,但当其无参时,分支条件必须是任意的boolean表达式。
总结
本笔记总结了一些Kotlin的相关基础知识,对Kotlin中的函数、变量、以及when语法进行了相关的学习,后续将对Kotlin进行更加深入的相关学习。