2

要素を変更しようとしているこれらの 2 つの関数があります。それらの1つはコンパイルされ、他のものは「valを再割り当てできません」と言います。次の機能の違いは何ですか? 一方がコンパイルされ、もう一方がコンパイルされないのはなぜですか?

コンパイルするもの

fun <T> Array<T>.mapInPlace2(transform: (T) -> T) {
for (i in this.indices) {
    this[i] = transform(this[i])
}
}

と言う方

Val を再割り当てできません

fun <T> Array<T>.mapInPlace1(transform: (T) -> T) {
for (i in this) {
    i = transform(i);
}
}
4

3 に答える 3

2

これを試して:

for(i:Int in 0 until this.size) {
    this[i] = "your value"
}
于 2019-02-11T23:50:06.630 に答える