最近在了解Android Jetpack相关的知识点,官方给出了很多建议的Project,大部分都是kotlin实现的,所以了解一下基本的kotlin语法,防止Read Source的时候卡住,记录一下,避免遗忘~
1、知识点
1.1、函数
1)函数的返回类型
fun sum(a: Int, b: Int): Int {
return a + b
}
2)可以将表达式作为函数体、返回值类型自动推断的函数
fun sum(a: Int, b: Int) = a + b
1.2、变量
1)定义只读局部变量使用关键字 val
定义。只能为其赋值一次
val a: Int = 1 // 立即赋值
val b = 2 // 自动推断出 `Int` 类型
val c: Int // 如果没有初始值类型不能省略
c = 3 // 明确赋值
2)可重新赋值的变量使用 var
关键字:
var x = 5 // 自动推断出 `Int` 类型
x += 1
1.3、字符串
fun main() {
var a = 1
// 模板中的简单名称:
val s1 = "a is $a"
a = 2
// 模板中的任意表达式:
val s2 = "${s1.replace("is", "was")}, but now is $a"
println(s2)
}
1.4、空值与 null
1)当某个变量的值可以为 null 的时候,必须在声明处的类型后添加 ?
来标识该引用可为空。如果 str
的内容不是数字返回 null:
fun parseInt(str: String): Int? {
return str.toIntOrNull()
}
1.5、is
1)is 运算符检测一个表达式是否某类型的一个实例。 如果一个不可变的局部变量或属性已经判断出为某类型,那么检测后的分支中可以直接当作该类型使用,无需显式转换:
1.6、when
表达式
fun describe(obj: Any): String =
when (obj) {
1 -> "One"
"Hello" -> "Greeting"
is Long -> "Long"
!is String -> "Not a string"
else -> "Unknown"
}
1.7、for
循环
val items = listOf("apple", "banana", "kiwifruit")
for (item in items) {
println(item)
}
或者
val items = listOf("apple", "banana", "kiwifruit")
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
1.8、使用区间(range)
val x = 10
val y = 9
if (x in 1..y+1) {
println("fits in range")
}
网友评论