上級 › environment はベクトルと違い参照渡しのように振る舞う › パターン1
environment はベクトルと違い参照渡しのように振る舞う
Rのベクトルやリストは関数に渡すと複製され、関数内での変更は呼び出し元に影響しません。
1 make_counter <- function() { 2 e <- new.env() 3 e$value <- 0 4 e 5 } 6 counter1 <- make_counter() 7 counter2 <- ______________ ^ 8 counter2$value <- 10 9 cat(counter1$value, counter2$value, "\n")
出力: 10 10
空欄を埋めて実行を通す
counter2 <- counter1はenvironmentの参照をコピーするだけなので、counter2への変更がcounter1にもそのまま反映されます。独立させたい場合はmake_counter()で新しいenvironmentを作る必要があります。
次の問題