一、变量
1.定义方法
在Kotlin中,我们使用关键字val
或var
来声明一个变(常)量。
val: 声明一个常量,相当于java中的final变量,无法二次赋值
var: 声明一个变量
用例:
1 2
| val a = 114 var b = 5.14
|
Kotlin具备优秀的类型推导能力,它会将a的类型推导为Int,并将b的类型推导为Double。
2.变量类型
例:
1 2
| val a : Int = 114514 val b : Int = 1919.810
|
Kotlin部分的对象数据类型如下:
类型对象 |
名称 |
Int |
整形 |
Long |
长整型 |
Short |
短整型 |
Float |
单精度浮点型 |
Double |
双精度浮点型 |
Boolean |
布尔型 |
Char |
字符型 |
Byte |
字节型 |
Number |
数值型 |
String |
字符串型 |
二、函数
1.基本定义
1 2 3
| fun 函数名(参数a: 类型a,参数b: 类型b): 返回值类型 { return ... }
|
特别地,当函数中只有一行代码时,可以不写花括号 {}
,而使用 =
进行简化。如:
1
| fun largeNumber(num1: Int, num2: Int): Int = max(num1, num2)
|
在这种写法下,还能省去返回值类型的声明:
1
| fun largeNumber(num1: Int, num2: Int) = max(num1, num2)
|
另外,函数中声明的参数默认是可变的,如果想让它不可更改,可以在前面添加关键字val
三、逻辑控制
1.if语句
和大部分语言中的if
基本没有区别
1 2 3 4 5 6 7 8 9 10
| var a = 5 var b = 4 if (a > b) { a = b } else if (b > a){ b = a } else { a = 9 b = 9 }
|
但在Kotlin中,if
语句还有别的功能: 具有返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| fun largerNumber(num1: Int, num2: Int): Int { val value = if (num1 > num2) { num1 } else { num2 } return value }
fun largerNumber(num1: Int, num2: Int) = if (num1 > num2) { num1 } else { num2 }
fun largerNumber(num1: Int, num2: Int) = if (num1 > num2) num1 else num2
|
2.when语句
when
语句类似Java中的switch
,但更加完善、简洁
1 2 3 4 5 6 7 8
| fun getScore(name: String) = when(name) { "Tom" -> 86 "Jim" -> 77 "Jack" -> 95 else -> { println("Error") } }
|
另外,可以不在when
中传入参数:
1 2 3 4 5 6 7 8
| fun getScore(name: String) = when { name == "Tom" -> 86 name == "Jim" -> 77 name.startWith("Jack") -> 95 else -> { println("Error") } }
|
when语句还支持类型匹配:
1 2 3 4 5 6 7
| fun checkNumber(num: Number) { when (num) { is Int -> println("num is Int") is Double -> println("num is Double") else -> println("num not support") } }
|
3.for循环
首先,Kotlin中移除了for-i
循环,但加强了for-each
循环。还引入了区间的概念。
1 2 3
| val range1 = 0..10 val range2 = 0 until 10 val range3 = 0 until 10 step 2
|
..
和 until
都要符合左端小于等于右端,无法创造递减区间。
如果要创造一个降序区间,要使用关键字 downTo
。
1
| val range4 = 10 downTo 1
|
有了区间之后,就可以通过for-in
循环来遍历这个区间:
1 2 3
| for (i in 0..10) { println(i) }
|
4.while循环
Kotlin中的while
循环和Java中的没有任何区别:
1 2 3 4
| var i = 0 while (i < 10) { i++ }
|
另外,do-while
循环也一样:
1 2 3 4 5
| var i = 0 do{ i++ }while(i < 10) println(i)
|