定义函数
定义一个函数,int a , int b, return a+b
fun sum(a:Int , b:Int):Int{
return a+b
}
该函数只有一个表达式函数体以及一个自推导性的返回值
fun sum(a:Int , b:Int) = a+b
返回一个void的类型,Unit可省略
fun doSomething():Unit{
}
fun doSomething(){
}
定义变量
定义一个变量
val a: Int = 333 //立即初始化
val b = 333 //推导出Int
val c: Int //未初始化的变量必须定义类型
c = 333 //赋值
注释
//单行注释
/*这是
块注释*/
字符串模板
var a = 333
var a1 = "a is $a" //使用变量名作为模板
var a2 = "${a1.replace("is","was")}" //使用表达式作为模板
使用可空变量以及空值检查
fun parseInt(str : String): Int?{
return str.toIntOrNull()
}
fun multiply(str1 : String , str2 : String):Int{
val x = parseInt(str1)
val y = parseInt(str2)
//直接使用x,y会产生错误,因为可能会有空值
if(x != null && y != null){
//x,y在进行了值检测之后自动转化成非空值
return x*y
}
}
使用值检查并自动转换
is 操作符检查一个表达式是否是某个类型的实例
fun getStringLength(obj : Any): Int? {
if(obj is String){
//此时obj 自动转化成Sring类型
return obj.length
}
return 0
}
for循环
val items = listOf{"apple","pears","banana"}
for (item in items) {
}
for (index in items.indices){
//取值items[index]
}
while循环
val items = listOf{"apple","pears","banana"}
val index = 0
while (index < items.size){
index++
}
使用when表达式
fun getString(obj : Any) : String =
when(obj){
0 -> "zero"
"1" -> "yi"
false -> "false"
is Long -> "is Long"
!is Boolean -> "is not boolean"
else -> "unKnow"
}
ranges
in在某个范围内 !in不在耨个范围内
val a=19
if(a in 1..100){
print("true")
}
使用lambda表达式
val fruits = listOf("apple","wiki","banana","avocado")
fruits
.filter{ it.length>4 }
.sortedBy{ it }
.map{ it.toUpperCase() }
.forEach{ printIn ( it ) }
网友评论