要素を変更しようとしているこれらの 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);
}
}