如果在不传递任何参数的情况下调用函数,则默认参数将用作函数定义的参数。当使用实参调用函数时,传递的实参将用作函数定义中的参数。
默认参数示例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 - 在函数调用中传递所有参数
fun main(args: Array<String>) { run(3,'a') } fun run(num:Int= 5, latter: Char ='x'){ print("parameter in function definition $num and $latter") }
输出:
parameter in function definition 3 and a
由于所有参数都是在run()函数调用中传递的,因此函数定义的参数将使用函数调用中传递的参数。
在讨论命名参数之前,让无涯教程在上面的程序中进行一些修改。
例如:
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”从函数调用传递到第二个参数中的函数定义。但是编译器假定为第一个参数(Int类型)传递的参数“ a”(Char类型)会导致程序错误。
要解决上面的问题,使用命名参数。
命名实参是在函数调用中定义实参名称的实参。为函数调用的参数定义的名称将检查函数定义中的名称并将其分配给该名称。
Kotlin命名参数示例
fun main(args: Array) { 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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)