在 Kotlin 中,函式引數是不可變的,因此您不能在不先復制的情況下修改代碼中的引數,這會影響空間復雜度,是否會阻止就地修改,從而阻止它具有 O(1) 常量?解決方案是什么?
fun replaceFirstElement(nums: IntArray, number: Int) {
// not working
nums[0] = number
}
uj5u.com熱心網友回復:
Kotlin 中的陣列始終是可變的,當作為引數傳遞給函式時也是如此。它是固定大小的,但元素是可變的:
fun replaceFirstElement(nums: IntArray, number: Int) {
nums[0] = number
}
val intArray = IntArray(10) { it 1 }
replaceFirstElement(intArray, 99)
intArray.forEach { println(it) }
輸出:
99
2
3
4
5
6
7
8
9
10
這也適用于其他陣列型別,以及 MutableList、MutableMap 等可變集合。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/498191.html
下一篇:在圖中查找所有連接的組件及其大小
