个性化阅读
专注于IT技术分析

Kotlin默认名称和命名参数

本文概述

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:在函数调用中传递所有参数

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<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
赞(0)
未经允许不得转载:srcmini » Kotlin默认名称和命名参数

评论 抢沙发

评论前必须登录!