[英]Is vararg in kotlin useless?
我正在考慮 kotlin 中的 vararg(可變參數)選項。我知道它在 kotlin 之前在 java 之前就在這里,但實際上我從來沒有真正理解使用它的好處。 例如,如果我想讓我的 function myFun() 獲取可變數量的 arguments(比方說字符串),我將以一種獲取字符串列表的方式創建 myFun()。 我看不出有任何理由使用 vararg。
在 List 上使用 vararg 有什么好處,我錯過了什么嗎?
vararg
使您可以自由調用 function 和無限數量的 arguments 而無需將它們包裝在集合中。 使用List
類型的參數,您控制的不僅僅是 arguments,例如可變性。
這是更自以為是的答案。
你是對的,傳遞列表是避免vararg
的一種選擇。
對於作為 function 的實施者的您而言,沒有真正的區別,但對於消費者而言卻是。 是function的設計題。 您希望您的客戶如何調用您的功能。
傳遞列表會強制調用者首先創建一個列表,並在將所有項目傳遞給 function 之前用所有項目填充它。
fun foo(list: List<Int>) { ... }
val list: List<Int> = listOf(1,2,3,4,5)
foo(list)
如果您提供采用vararg
參數類型的 function,則調用該 function 的方式會發生變化。
fun bar(vararg items: Int) { ... }
fun bar(1) // just passing one parameter
fun bar(1,2,3) // or maybe three, etc.
兩種方式都有它們的用例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.