函數(shù)定義
函數(shù)定義使用關(guān)鍵字fun儿捧,參數(shù)格式為:參數(shù):類(lèi)型
fun sum(a:Int,b:int):Int{//返回值
return a+b
}
表達(dá)式作為函數(shù)體码俩,返回類(lèi)型自動(dòng)推斷
fun sum(a:Int,b:Int)=a+b
//public 方法則必須明確寫(xiě)出返回類(lèi)型
public fun sum(a:Int,b:Int):Int=a+b
無(wú)返回值的函數(shù)
fun printSum(a:Int,b:Int):Unit{
print(a+b)
}
//如果是返回 Unit類(lèi)型书聚,則可以省略(對(duì)于public方法也是這樣):
public fun printSum(a: Int, b: Int) {
print(a + b)
}
可變長(zhǎng)參數(shù)函數(shù)
函數(shù)的變長(zhǎng)參數(shù)可以用vararg關(guān)鍵字進(jìn)行標(biāo)識(shí):
fun vars(vararg:Int){
for(vt in v){
print(vt)
}
}
lambda(匿名函數(shù))
fun main(arg:Array<String>){
val sumLambda: (Int, Int) -> Int = {x,y -> x+y}
println(sumLambda(1,2)) // 輸出 3
}
定義常量與變量
可變變量定義:var 關(guān)鍵字
var <標(biāo)識(shí)符> : <類(lèi)型> = <初始化值>
不可變變量定義:val 關(guān)鍵字腺办,只能賦值一次的變量(類(lèi)似Java中final修飾的變量)
val <標(biāo)識(shí)符> : <類(lèi)型> = <初始化值>
字符串模板
$ 表示一個(gè)變量名或者變量值
$varName 表示變量值
${varName.fun()} 表示變量的方法返回值:
var a = 1
// 模板中的簡(jiǎn)單名稱(chēng):
val s1 = "a is $a"
a = 2
// 模板中的任意表達(dá)式:
val s2 = "${s1.replace("is", "was")}, but now is $a"
NULL檢查機(jī)制
//類(lèi)型后面加抹锄?表示可為空
var age:String?="111”
//拋出空指針異常
val ages=age!!.toInt()
//不做處理返回null
val ages1=age?.toInt()
//age為空返回-1
val ages2=age?.toInt()?:-1
當(dāng)一個(gè)引用可能為null值時(shí)逆瑞,對(duì)應(yīng)的類(lèi)型聲明必須明確的標(biāo)記為可為null。