在Java中,可以這樣做:void function(Url... urls)
。它可以使用1..n的URL。問題是如果Kotlin可以做同樣的事情。Kotlin中的省略號運算符Java等價
2
A
回答
3
從科特林參考(https://kotlinlang.org/docs/reference/functions.html):
的參數可變數目(可變參數)
的函數(通常是最後一個)的參數可以被標有 可變參數修飾符:
fun <T> asList(vararg ts: T): List<T> { val result = ArrayList<T>() for (t in ts) // ts is an Array result.add(t) return result }
允許可變數目的參數傳遞給該函數:
val list = asList(1, 2, 3)
在函數類型T的可變參數參數是作爲陣列T 的可見的,即本示例中的TS可變上面已經鍵入陣列。
當心與Java的差:在Java中可以傳遞數組作爲單個參數,而在科特林必須顯式解包陣列,使每個 數組元素的單獨的參數。但是你可以通過簡單地把*文字的相應參數之前做到這一點:
fun main(args: Array<String>) {
val list = listOf("args: ", *args)
println(list)
}
(看看它是如何讓你從一個數組,在一次調用一些固定值,這是Java不允許結合值)。
5
該解決方案與vararg
和它是可能的迭代參數。
private fun areValidFields(vararg fields: String) : Boolean{
return fields.none { it.isNullOrEmpty() || it.isBlank() }
}
相關問題
- 1. java的等價逐字運算符
- 2. F ++等價的++運算符
- 3. Groovy等價於Java 8 ::(雙冒號)運算符
- 4. 在oracle中是否有與java運算符等價的java?
- 5. JavaScript等價於? C#中的運算符
- 6. java按位運算符和等號;複合運算符
- 7. Kotlin:雙冒號(反射)運算符
- 8. Java中Ruby:符號的等價性?
- 9. 什麼是Java Stream.collect的Kotlin等價物?
- 10. Bash等號運算符(==,-eq)
- 11. java等價的mysql字符串搜索運算符'like'
- 12. ANTLR:乘法省略'*'符號
- 13. ASP.NET - 省略問號字符
- 14. Ruby等價於Groovy的Elvis(?:)運算符?
- 15. Java中的逗號運算符的等效形式?
- 16. 帶省略元素的CSS省略號?
- 17. PHP是否與|| =運算符等價?
- 18. PHP等價於mysql「IN」運算符?
- 19. 省略號
- 20. Java:省略字符串中的字
- 21. Java的JNI和省略號亂
- 22. before_save與等號運算符的行爲
- 23. 關於等號運算符的警告
- 24. C#等價的Ruby符號
- 25. 在Java中自動省略字符串
- 26. 在java中省略訪問說明符
- 27. 省略三元運算符的第二部分
- 28. HTML/CSS省略號
- 29. 賦值和等號運算符中的寬字符和字符
- 30. Kotlin中Java靜態最終字段的等價物是什麼?
https://kotlinlang.org/docs/reference/functions.html#variable-number-of-arguments-varargs – BakaWaii