我在Kotlin學習emptyArray()
,但是我不能指定它的值(這很明顯),我也不能設置它的大小。在Kotlin中使用emptyArray
有什麼用?kotlin中emptyArray()的用法
5
A
回答
0
emptyArray()函數返回一個大小爲0的空數組。它不包含任何參數(不是大小,都不是元素)。您可以在賦值操作中將它用作右值。您可以使用空數組來轉儲預先存在的數組中的所有值,並將其大小設置爲0. 注意:返回空值比返回空值數組更好,因爲它不會創建任何空值例外在進一步的行動。
var array=arrayOf(1,2,3,4,5); array = emptyArray() //The array datais dumped and size is set to 0; array = arrayOf(0,1,2)
4
與java.util.Collections.emptyList()
方法及其對應的Maps
等相似,這些方法在調用以數組/集合爲參數的方法時非常方便,但您不需要/不需要提供任何元素那個集合。您可以實例化一個新的空數組/集合或使用其中一個輔助方法。
如果上述用例在您的場景中非常常見,那麼您通過使用幫助程序來保存內存,因爲始終重複使用同一個實例,而不是一次又一次創建新實例。否則,它主要是「語法糖果」,使您的代碼更易讀易懂。
0
數組是固定大小的容器。 emptyArray()
函數創建一個長度爲0的數組,你真的不能用這個做很多事情。您不能在其中存儲任何內容,並且無法調整其大小。
您需要一個空數組的常見用例將作爲將在稍後設置爲不同數組的屬性的默認值。這比默認情況下將null
存儲在該屬性中更好,因爲當代碼使用數組時,您不必處理可能的null
值。例如,您可以安全地遍歷一個空數組。
舉個簡單的例子:
class NumberHolder {
var numbers: Array<Int> = emptyArray()
fun printNumbers() {
numbers.forEach { println(it) }
}
}
這個類的使用將是這個樣子:
val nh = NumberHolder()
nh.printNumbers() // prints nothing
nh.numbers = arrayOf(1, 2, 3)
nh.printNumbers() // prints 1, 2, and 3 on separate lines
4
有要回退到一個空數組的情況下或空的清單。例如:
return someInputArray?.filterNotNull() ?: emptyArray()
在這種情況下,如果我有一個有效的輸入陣列,我濾除null
值,否則,如果源陣列是null
我返回一個空數組。因此總是返回數組而不是null
。空列表和數組可能比在Kotlin中傳遞可空列表或數組更常見。
所以是的,它是空的,你不能添加它,就像沒有JVM數組一旦分配就可以擴展一樣。
相關問題
- 1. Kotlin中CompletableFuture異常方法的使用
- 2. 如何調用Kotlin中的ArrayAdapter.addAll方法?
- 3. 無法配置Kotlin
- 4. Kotlin有Map語法的語法嗎?
- 5. kotlin中的Android ViewModelProviderFactory
- 6. Kotlin中的擴展
- 7. 無法從Kotlin中的Observable上的()運算符調用Android
- 8. 在Kotlin中使用@ClassRule
- 9. 在Kotlin中使用FirebaseListAdapter
- 10. 無法用匕首運行kotlin 2
- 11. Android庫無法編譯kotlin
- 12. groovy無法解析kotlin類
- 13. 無法編譯Kotlin代碼
- 14. Kotlin NoClassDefFoundError with spring @RequestMapping方法
- 15. Kotlin ||無法將庫添加到我的應用程序中?
- 16. Kotlin中Holdr的未解決的引用
- 17. 我們可以在Kotlin中使用infix通用方法嗎?
- 18. Android Kotlin - 無法調用導航項目選擇的方法
- 19. 如何使用kotlin中的androidannotations庫?
- 20. Kotlin中的註釋不起作用
- 21. Kotlin cli應用程序在更新到kotlin 1.0.0-beta後無法正常工作
- 22. Proguard和Kotlin-Reflect/Kotlin註釋
- 23. 對象kotlin的執行方法
- 24. 實例化Kotlin類的LinkageError方法notify()
- 25. Kotlin的魚眼/坩堝語法高亮
- 26. Gradle kotlin不支持的方法Dependencies.getAtoms()
- 27. Kotlin中的交換函數
- 28. kotlin中的廣播Reciver
- 29. 在ViewHolder中的kotlin-android-extensions
- 30. kotlin中的靜態字段
*,但我不能在裏面*賦值,你是如何創建陣列? –
var array = emptyArray() –
你如何試圖爲'array'賦值? –