一、变量
kotlin只允许两种关键字修饰变量:val var
- val:相当于Java中的final关键字。被val修饰后的变量只能被赋值一次,并且不能改变。
- var:用来声明一个可变变量。
// kotlin可以通过类型推到出变量的类型 也可以声明变量类型
val a = 10
var b = 20
val c: Int = 10
var d: String = "hello world"
二、函数
2.1 函数定义的规则
fun methodName(param1: Int, param2: Int) : Int {
return 0
}
当一个函数中只有一行代码时,可以不必写函数体。
fun methodName(param1: Int, param2: Int) = 任意代码
2.2 if 条件语句
if语句与java中的if差不多。
fun largerNumber(num1: Int, num2: Int): Int {
var value = 0
if (num1 > num2) {
value = num1
} else {
value = num2
}
return value
}
但是kotlin的if语句是包含返回值的,返回值是if语句每一个条件中最后一行代码的返回值。因此上面的代码可以变成:
fun largeNumber(num1: Int, num2: Int) : Int {
val value = if (num1 > num2) {
num1
} else {
num2
}
return value
}
上面的代码还可以精简,因为函数体里面相当于只有一行代码,所以可以精简为一下代码:
fun largeNumber (num1: Int, num2: Int) = if (num1 > num2) num1 else num2
2.3 when条件语句
when语句类似于java中的switch,而且每个条件之间不需要使用break。使用示例:
fun getScore(name: String) = when (name) {
"Tom" -> 100
"heby" -> 80
"jack" -> 90
else -> 0
}
其每个条目的结构是 匹配值 -> {执行语句}。 当执行语句中只有一行代码时,{}可以省略。
除了精确匹配,when还可以类型匹配。
fun checkNumber(num: Number) {
when (num) {
is Int -> println("number is Int")
is Double -> println("number is Double")
else -> println("number no no no")
}
}
when语句还支持无参数的用法
fun getScore(name: String) = when {
name == "Tom" -> 100
name == "jack" -> 90
else -> 100
}
fun getScore(name: String) = when {
name.startWith("Tom") -> 100
name == "jack" -> 90
else -> 100
}
2.4 循环语句
- 创建集合方法
// 创建[0,10]的数组
val list = 0..10
//创建[0,9)的数组
val list = 0 until 10
- 遍历集合
// 打印结果0-10
for (i in 0..10) {
println(i)
}
// 打印结果 0 2 4 6 8
for (i in 0 until 10 step 2) {
println(i)
}
// 打印结果10-1
for (i in 10 downTo 1) {
println(i)
}