Function Kotlin中的函数参数名称

Function Kotlin中的函数参数名称,function,kotlin,parameters,Function,Kotlin,Parameters,我在一些Kotlin示例中看到了下一个语法,其中参数的名称是在传递值之前设置的: LoginResult(success = LoggedInUserView(displayName = result.data.displayName)) 与下一个语法的区别是什么?它只是视觉上的还是有某种用途的 LoginResult(LoggedInUserView(result.data.displayName)) 根据: 调用函数时,可以命名其一个或多个参数。当函数有大量参数,并且很难将值与参数关联时

我在一些Kotlin示例中看到了下一个语法,其中参数的名称是在传递值之前设置的:

LoginResult(success = LoggedInUserView(displayName = result.data.displayName))
与下一个语法的区别是什么?它只是视觉上的还是有某种用途的

LoginResult(LoggedInUserView(result.data.displayName))
根据:

调用函数时,可以命名其一个或多个参数。当函数有大量参数,并且很难将值与参数关联时,这可能会有所帮助,尤其是当它是布尔值或空值时

在函数调用中使用命名参数时,可以自由更改它们的列出顺序,如果要使用它们的默认值,可以完全忽略它们

因此,本质上,当你有很多参数的时候,它们是有用的。例如,而不是:

doSomething(true, true, true)
为了清晰起见,我们可以命名这些参数:

doSomething(
   first = true,
   second = true,
   third = true
)
编译后的代码是相同的,这只是为了让开发人员更清楚

另一个用例是,如果您愿意,您可以混合订单:

doSomething(
    third = true,
    first = false,
    second = false
)

同样,生成的代码也以同样的方式工作,这也是为了开发人员的清晰性。

是的,这只是可视化了您的参数值。 你可以用它,也可以不用它,它不会制造麻烦

而且很特别

请参见我的数据类示例

data class Movie(
    var title: String? = null,
    var poster: Int? = 0,
    var originalLang: String? = null
)
然后,您可以轻松地放置构造函数,而不必查看流

比如:

val movie = Movie(poster = 9, originalLang = "en", title = "Overlord")

如果有多个属性,则可以按顺序输入它们。或者,如果某些属性具有默认值,则可以澄清编译器的歧义。