Kt學習筆記(10)函式

2021-10-03 11:12:13 字數 2466 閱讀 6185

一、基本用法

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 返...