Kotlin 函数调用中参数和变量可以同名吗?

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

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

例如

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

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

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

kotlin named-parameters
1个回答
1
投票

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

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

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

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

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