废话:
Kotlin 现在是 Android 的官方语言!Kotlin 因其简洁性和强大的功能早已深受众多 Android 开发者的热爱。
笔记:
1.不需要使用“;”结束
2.直接复制变量不需要定义类型
3.不需要定义作用域
例如:
val a: Int = 1 // 立即赋值
val b = 2 // 自动推断出 `Int` 类型
val c: Int // 如果没有初始值类型不能省略
c = 3 // 明确赋值
4.字符串特殊字符不需要使用“\”转义$代码能正常执行
例如:
var a = 1
// 模板中的简单名称:
val s1 = "a is $a"
a = 2
// 模板中的任意表达式:
val s2 = "${s1.replace("is", "was")}, but now is $a"
输出s2结果为:a was 1, but now is 2
5.方法定义也不需要作用域
例如:
fun sum(a: Int, b: Int): Int {
return a + b
}
或者(自动判断返回类型)
fun sum(a: Int, b: Int) = a + b
无返回值
fun printSum(a: Int, b: Int) {
println("sum of $a and $b is ${a + b}")
}
使用条件表达式
fun maxOf(a: Int, b: Int) = if (a > b) a else b
6.当某个变量的值可以为 null 的时候,必须在声明处的类型后添加 ? 来标识该引用可为空(可以标注参数和返回值)
例如:
fun parseInt(str: String): Int? {
// ……
}
7.is 运算符检测一个表达式是否某类型的一个实例
例如:
if (obj is String) {
// `obj` 在该条件分支内自动转换成 `String`
return obj.length
}
8. for 循环使用
例如:listOf类似java的list
val items = listOf("apple", "banana", "kiwi")
for (item in items) {
println(item)
}
或者
val items = listOf("apple", "banana", "kiwi")
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
9.while循环可以理解跟java一样
10.when 表达式类似java的switch
例如:
fun describe(obj: Any): String =
when (obj) {
1 -> "One"
"Hello" -> "Greeting"
is Long -> "Long"
!is String -> "Not a string"
else -> "Unknown"
}
11.区间
使用 in 运算符来检测某个数字是否在指定区间内 !in检查是否在指定区间外
val x = 10
val y = 9
if (x in 1..y+1) {
println("fits in range")
}
//输出fits in range
使用 in区间迭代或数列迭代
for (x in 1..5) {
println(x)
}
//输出1-5
for (x in 1..10 step 2) {
println(x)
}
//输出1,3,5,7,9
for (x in 9 downTo 0 step 3) {
println(x)
}
//输出 9,6,3,0
12.创建基本类及其实例不需要new关键字
比如:
val source = ArrayList<Int>()//创建ArrayList
13.静态方法
class Test {
companion object {
fun getStatic() {
Log.d("TAG","getStatic:")
}
}
}
//调用静态方法
getStatic()
Test.getStatic()