还好吗?在 kotlin 中的函数调用中具有相同名称的参数和变量

问题描述 投票:0回答:1

我有疑问,在函数调用中使用名称参数和变量名称相同的命名参数是否可以

例如

fun fun1( to:string ){
//body}

fun fun2( ){
to = "xyz"
fun1( to = to)
}

调用参数名为“to”的fun1并传递变量“to”可以这样做吗?在任何一种情况下,有人都可以解释编译器将如何解决这个问题

kotlin named-parameters
1个回答
0
投票

在 Kotlin 中,仅当变量/属性名称和

=
位于一行代码的开头(或 lambda 中的第一个代码),而不是位于表达式或列表的中间时,才会发生属性或变量赋值。函数参数。

由于编译器在函数调用的参数列表中看到

to =
,因此会将其解析为命名参数而不是变量赋值,因此
to
to =
被解释为函数参数名称。

© www.soinside.com 2019 - 2024. All rights reserved.