- 函数定义与简化
fun sum(a: Int,b: Int) = a+b
两种变量生命关键字
val
仅能赋值一次,可分离声明与幅值
var
一般变量nullable 声明
var socket :Socket
声明socket
不可空,无须做检查,编译器会自动警告(Error)
var socket :Socket?
声明socket
可空,必须做空检查字符串模板
print("$a+$b=" + sum(a, b))
使用$
加关键字的方式在字符串中引用变量的值
使用${表达式}
的方式在字符串中应用表达式的返回值
- 类型检查与自动转换
fun ex(obj: Any): Int {
if (obj is String) {
//类型被自动转换为String
return obj.length
}
//此处obj类型仍然是Any
return -1
}
每次使用 is 后都会对后面同一作用域内的参数进行类型转换
-
when
表达式
fun describe(obj: Any): String =
when (obj) {
1 -> "One"
"Hello" -> "Greeting"
is Long -> "Long"
!is String -> "Not a string"
else -> "Unknown"
}
- 范围表达式
val x=3
if(x !in 1..10){
print(x)
}
- 集合操作
for(item in items){
print(item)
}
- Lambda 表达式
collections
.filter{ it.startsWith("a")}
.sortedBy{it}
.map{it.toUpperCase()}
.forEach{println(it)}