一、基本用法
kt函式必須使用fun關鍵字開頭,後面緊跟函式名,以及一對小括號,小括號是函式引數列表,如果函式有返回值,在小括號後面加冒號,冒號後面是函式返回值型別。
/**
* 函式的標準定義
*/fun
double
(x : int)
: int
在kt中呼叫函式,函式名後面是小括號,小括號中是要傳遞的函式引數值
var result =
double(2
)
如果是呼叫成員函式,需要使用點(.)
sample()
.foo
() 首先會例項化sample,然後呼叫foo函式
二、使用中綴標記法呼叫函式
使用中綴標記法呼叫函式
infix
fun string.
div(str : string)
: string
var str =
"hello world"
//一般方法呼叫div函式
println
(str.
div(
"l")
)//使用中綴標記法
println
(str div "l"
)//中綴標記法連續使用
println
(str div "l" div "o"
)
三、單表示式函式fun
triple
(x : int)
: int = x *
3
kt編譯器可以推斷出等號右側的表示式的型別,那麼可以省略函式的返回值型別。
fun
triple
(x : int)
= x *
3
四、函式引數和返回值
4.1、可變引數
乙個函式的乙個引數(一般是最後乙個引數)可以標記為 vararg,這樣會將該引數作為可 變引數處理。所謂可變引數,就是指可以任意多個引數,在函式內部,會按陣列來處理這些參 數值。
/**
* aslist 函式是乙個泛型函式,該函式只有乙個引數,井且是可變引數
* 該函式返 回 list型別。
* aslist函式的功能是將一組值轉換為 list物件,並返回該物件。
*/fun
aslist
(vararg ts : t)
: list
return result
}
呼叫:
//由於 ts 是可變引數,因此可以傳遞任意多個引數值,並且可以是任意型別的。
/**在 aslist 函式內部,型別為 t 的 vararg引數會被看作乙個 t型別的陣列,也就是說, aslist 函式中的 ts變數的型別為 array。*/
var list =
aslist(1
,2,"a",4
,5)println
(list)
只有乙個引數可以標記為 vararg。如果 v缸arg 引數不是函式的最後乙個引數,那麼對於 vararg引數之後的其他引數,可以使用命名引數語法來傳遞引數值,或者,如果引數型別是函 數,可以在括號之外傳遞乙個 lambda表示式。例如,下面的 aslist 函式有 3 個引數,第 1 個 引數是可變引數,後兩個是 valuei 和 value2 引數 。由於最後乙個引數不是可變引數,因此在 傳遞 valuei 和 value2 引數的值時 需要使用命名引數
fun
aslist
(vararg ts : t,value1 : int,value2 : string)
: list
value2 = $")
return result
}
呼叫:
//使用命名引數傳遞value1 和value2引數的值
var list =
aslist(1
,2,3
,value1 =
2,value2 =
"abc"
)println
(list)
呼叫乙個存在 vararg 引數的函式時,我們可以逐個傳遞引數值,如 aslist(l, 2, 3),或者, 如果我們已經有了乙個陣列,希望將它的內容傳遞給函式 ,可以使用展開( spread)操作符(在 陣列之前加乙個*):
val a =
arrayof(1
,2,3
)val list=
aslist(-
1,0,
*a,4
)
4.2、返回值型別 Kt學習筆記(一) 語法基礎
二 基本資料型別 1 1 定義變數 var n int 30 定義變數 var ok int 定義乙個變數,沒有進行初始化 val m int 20 定義乙個常量 不需要設定m ok 40 對變數賦值 m 40 編譯出錯 var cannot be reassigned var k 100 自動推導...
PHP學習筆記10 函式
1.php自定義函式 function f1 2.帶返回和引數的自定義函式 可以返回陣列和物件的任意型別 function f2 a,b 3.可變函式 通過變數的值來呼叫函式,因為變數的值是可變的,所以可以通過改變乙個變數的值來實現呼叫不同的函式。可變函式的呼叫方法為變數名加上括號。function...
Mysql學習筆記 10 函式
含義 一組預先編譯好的sql語句的集合,可以理解成批處理語句 作用 和儲存過程的區別 儲存過程 可以有0個返回,也可以有多個返回,適合做批量插入 批量更新 函式 有且僅有1 個返回,適合做處理資料後返回乙個結果 delimiter create function 函式名 引數列表 returns 返...