簡體   English   中英

Kotlin 中的 Function 參數名稱

[英]Function parameter names in Kotlin

我在一些 Kotlin 示例中看到了在傳遞值之前設置參數名稱的下一個語法:

LoginResult(success = LoggedInUserView(displayName = result.data.displayName))

與下一個語法有什么區別? 它只是視覺上的還是有某種目的?

LoginResult(LoggedInUserView(result.data.displayName))

根據Kotlin 文檔

調用 function 時,可以命名它的一個或多個 arguments。 This may be helpful when a function has a large number of arguments, and it's difficult to associate a value with an argument, especially if it's a boolean or null value.

當您在 function 調用中使用命名 arguments 時,您可以自由更改它們列出的順序,如果您想使用它們的默認值,您可以完全不使用它們。

因此,本質上,當您對 function 有很多參數時,它們會很有幫助。 例如,而不是:

doSomething(true, true, true)

為了清楚起見,我們可以命名這些參數:

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

編譯后的代碼是相同的,這只是為了讓開發人員清楚。

另一個用例是,如果您願意,您可以混合訂單:

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

同樣,生成的代碼以相同的方式工作,這也是為了讓開發人員清楚。

是的,這只可視化您的參數值。 你可以使用它或不使用它,它不會造成麻煩。

它很特別

查看我的數據示例 class

data class Movie(
    var title: String? = null,
    var poster: Int? = 0,
    var originalLang: String? = null
)

那么您可以輕松放置構造函數而無需看到 stream

喜歡:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM