函数定义
函数定义使用关键字fun,参数格式为:参数:类型
fun sum(a:Int,b:int):Int{//返回值
return a+b
}
表达式作为函数体,返回类型自动推断
fun sum(a:Int,b:Int)=a+b
//public 方法则必须明确写出返回类型
public fun sum(a:Int,b:Int):Int=a+b
无返回值的函数
fun printSum(a:Int,b:Int):Unit{
print(a+b)
}
//如果是返回 Unit类型,则可以省略(对于public方法也是这样):
public fun printSum(a: Int, b: Int) {
print(a + b)
}
可变长参数函数
函数的变长参数可以用vararg关键字进行标识:
fun vars(vararg:Int){
for(vt in v){
print(vt)
}
}
lambda(匿名函数)
fun main(arg:Array<String>){
val sumLambda: (Int, Int) -> Int = {x,y -> x+y}
println(sumLambda(1,2)) // 输出 3
}
定义常量与变量
可变变量定义:var 关键字
var <标识符> : <类型> = <初始化值>
不可变变量定义:val 关键字,只能赋值一次的变量(类似Java中final修饰的变量)
val <标识符> : <类型> = <初始化值>
字符串模板
$ 表示一个变量名或者变量值
$varName 表示变量值
${varName.fun()} 表示变量的方法返回值:
var a = 1
// 模板中的简单名称:
val s1 = "a is $a"
a = 2
// 模板中的任意表达式:
val s2 = "${s1.replace("is", "was")}, but now is $a"
NULL检查机制
//类型后面加?表示可为空
var age:String?="111”
//抛出空指针异常
val ages=age!!.toInt()
//不做处理返回null
val ages1=age?.toInt()
//age为空返回-1
val ages2=age?.toInt()?:-1
当一个引用可能为null值时,对应的类型声明必须明确的标记为可为null。