var min: Int
//标准写法
if (x > y) {
min = y
max = x
} else {
min = x
max = y
}
//简写1,if 可以当作表达式
min = if (x > y) y else x
//简写2,if 可以当作表达式,如果 if 后面是代码块则代码块中最后一行返回值返回
max = if (x > y) {
println("x > y")
x
} else {
println("x <= y")
y
}
}
[]( )包及导入特性
------------------------------------------------------------------
我们知道,java 包名必须与磁盘目录一致,kotlin 包名没有这个限制,但是建议尽量一致,方便维护阅读。使用其他包中非 class 中定义的方法时可以直接 import 导入包,譬如:
//Test1.kt 文件使用 Test2.kt 文件
package cn.yan.test
import cn.yan.test2.funcTest
funcTest(1, 2) //调用 test2 包中的 funcTest 方法
还可以指定别名使用:
package cn.yan.test
//指定导入别名
import cn.yan.test2.funcTest as selfFuncTest
selfFuncTest(1, 2) //调用 test2 包中的 funcTest 方法
[]( )数组及遍历
-----------------------------------------------------------------
kotlin 中 for 循环遍历语法与 java 有比较大的差异,具体如下:
fun main() {
//IntArray 在 jvm 中表示的是 int[] 类型,可以看其注释得知
var array: IntArray = intArrayOf(1, 2, 3)
//遍历数组元素
for (item in array) {
println(item)
}
//遍历数组下标索引
for (index in array.indices) {
println("array[$index]=${array[index]}")
}
//遍历索引及元素
for ((index1, value1) in array.withIndex()) {
println("-array[$index1]=$value1")
}
}
[]( )when 关键字
--------------------------------------------------------------------
此关键字相对 java 来说是 kotlin 新增的,可以当作 switch 来使用,其 case 没有 java 常量类型限制,可以是任意表达式,如下:
fun testWhen() {
println(convertStr("he")) //other
println(convertStr("h")) //hello
var tmp = 12
var ret = when(tmp) {
in 0..20 -> "match 0..20"
30, 31, 32 -> "31, 32, 30"
33 -> "match 33"
else -> "other"
}
println(ret)
}
//简写
fun convertStr(str: String): String {
return when(str) {
"h" -> "hello"
"w" -> "word"
else -> "other"
}
}
//继续简写
fun convertStr1(str: String) = when(str) {
"h" ->