Kotlin默認和命名參數
Kotlin提供了在函數定義中指定默認參數(參數)的工具。
如果調用函數而不傳遞任何參數,則使用默認參數作爲函數定義的參數。 當使用參數調用函數時,傳遞參數將用作函數定義中的參數。
默認參數示例1:在函數調用中不傳遞參數
fun main(args: Array<String>) {
run()
}
fun run(num:Int= 5, latter: Char ='x'){
print("parameter in function definition $num and $latter")
}
執行上面示例代碼,得到以下結果 -
parameter in function definition 5 and x
在上面的程序中,run()
函數調用沒有傳遞參數,它使用在函數定義中的默認參數。
默認參數示例2:在函數調用中傳遞一些參數
fun main(args: Array<String>) {
run(3)
}
fun run(num:Int= 5, latter: Char ='x'){
print("parameter in function definition $num and $latter")
}
執行上面示例代碼,得到以下結果 -
parameter in function definition 3 and x
在上面的程序中,run()
函數調用帶有一個(第一個)參數,函數定義的第一個參數是使用傳遞給函數的值,它指定傳遞值爲:3
。 第二個參數用作默認參數。
默認參數示例3:在函數調用中傳遞所有參數
fun main(args: Array<String>) {
run(99,'z')
}
fun run(num:Int= 5, latter: Char ='x'){
print("parameter in function definition $num and $latter")
}
執行上面示例代碼,得到以下結果 -
parameter in function definition 99 and z
由於所有參數都在run()
函數調用中傳遞,因此函數定義的參數使用函數調用中傳遞的參數。
Kotlin命名參數
在討論命名參數之前,先對上面的程序中做一些修改。
示例:
fun main(args: Array<String>) {
run('a')
}
fun run(num:Int= 5, latter: Char ='x'){
print("parameter in function definition $num and $latter")
}
執行上面示例代碼,得到以下結果 -
Error: Kotlin: The character literal does not conform to the expected type Int
在這裏,嘗試將參數'a'
從函數調用傳遞給函數定義的第二個參數。 但編譯器假定參數'a'
(Char類型)爲第一個參數(Int
類型)傳遞,這會導致程序錯誤。
要解決上述問題,可使用命名參數。
命名參數是一個參數,在函數調用中定義參數的名稱。 定義函數調用的參數名稱,並檢查匹配函數定義中的名稱然後分配給它。
Kotlin命名爲參數示例
fun main(args: Array<String>) {
run(latter='a')
}
fun run(num:Int= 5, latter: Char ='x'){
print("parameter in function definition $num and $latter")
}
執行上面示例代碼,得到以下結果 -
parameter in function definition 5 and a