函式傳引數 Kotlin 02 函式

2021-10-14 22:50:38 字數 1974 閱讀 1532

[訪問控制符] fun [函式名] ( [引數列表...] ) : [返回值型別]else}如上**,宣告 函式 fun1 需要乙個引數 value 返回 boolean 型別的值。

kotlin 中函式的引數 用name:type的形式定義,多個引數之間使用 逗號 分割,每個引數必須顯示的指定資料型別

fun fun2(p1: string, p2: int)
函式中的引數是不可變的,不能在函式體中直接給引數重新賦值。

kotlin中可以給引數指定預設值,來減少函式過載

fun main() fun fun2(p1: string, p2: int, p3: float = 1.0f) 第2行 輸出結果: joel 1 1.0第3行 輸出結果: joel 1 3
有預設值的引數,當呼叫不傳值時,使用預設值。否則使用傳的值。

當有預設值的引數,不位於引數列表的末尾,呼叫函式時位於預設值引數後面的引數,需要使用具名引數(name=value)傳值。例如:

fun main() fun fun3(p1: string, p2: int=0, p3: float) 輸出結果: joel 0 3.0
如上**,函式 fun3 第2個引數 p2 預設值為0。在呼叫函式時,不給引數p2傳值時,引數p3就需要顯示的指定引數名。

kotlin中使用 修飾符vararg標記可變數量引數,通常位於引數列表的末尾,引數具有陣列型別。

fun main() fun fun4(vararg p0: string)}輸出:j     o     e     l
乙個函式只能有 乙個 引數可以定義為可變數量引數

當可變數量引數不位於引數列表末尾時,其後的引數使用 具名引數 (name=value)傳值

呼叫具有可變數量引數的函式時,可以乙個乙個傳值,也可以 傳陣列,在陣列前面加上*

fun main() fun fun4(vararg p0: string)}輸出: k           o           t
當函式體只有一行**時,可以省略 花括號 ,使用 = 連線 函式 和 函式體。

fun fun4(a: int, b: int): int = a + bfun fun5(a: int, b: int) = a + bfun fun6(a: int, b: int): unit = println(a + b)
當函式的返回型別不為unit 時。可以省略返回型別,kotlin 根據 函式體 自動推導返回型別。

當函式無返回值時,它的返回型別是unit。返回unit的函式,返回型別 和 返回值 可以省略。

單表示式函式,可以省略返回型別

有函式體的函式,必須顯示宣告返回型別和返回值。

fun fun7(vararg p0: string) }fun fun8(vararg p0: string): string     return str
1,使用 fun 關鍵字 宣告函式

2,函式引數 以 name:type 的形式定義,多個引數使用 逗號 分割、

3,引數可以指定預設值,位於預設值引數之後的引數,使用 具名引數(name=value)的形式呼叫

4,使用關鍵字 vararg 定義可變數量的引數

5,呼叫具有 vararg 修飾引數 的函式時,可以使用 伸展操作符 * 傳值

6,單表示式函式,可以省略返回型別和函式體,使用 = 連線 函式 和 函式體

7,返回unit的函式,可以省略返回值和返回型別。

函式傳引數 python 函式引數

1.位置引數 最熟悉的一種引數形式,優點 簡單。缺點 傳遞引數不夠靈活 2.預設引數 優點 提高了 的復用性 缺點 容易產生二義性 注意事項 一是必選引數在前,預設引數在後。二是如何設定預設引數。當函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。變化小的引數就可以作為預設引數。def p...

彙編向函式傳引數

今天師兄講了下彙編如何向函式傳引數,為了怕以後忘記,先記在這裡。在老核心裡面,彙編往函式傳遞引數是第乙個引數是棧頂,依次往後。但是得在函式定義的時候用asmlinkage 字首,是函式強制從彙編裡面取引數。現在新核心是彙編的第乙個引數是eax,第二個引數是edx。以下 是在師兄的程式裡面看到的,st...

函式的引數傳值

函式的引數傳值主要分為 傳值引數,傳引用引數。1.傳值引數 當初始化乙個費引用型別的變數時,初始值被拷貝給變數。此時,對變數的改動不會改變和影響初值。int a 1 int b 2 swap a,b 則不能交換他們的值。但當時指標傳值時 指標傳值的行為和非引用型別傳值一樣,當執行指標拷貝時,拷貝的是...