上級 › environment はベクトルと違い参照渡しのように振る舞う › パターン3
environment はベクトルと違い参照渡しのように振る舞う
Rのベクトルやリストは関数に渡すと複製され、関数内での変更は呼び出し元に影響しません。
1 make_tank <- function() { 2 e <- new.env() 3 e$fuel <- 0 4 e 5 } 6 tank1 <- make_tank() 7 tank2 <- ___________ ^ 8 tank2$fuel <- 20 9 cat(tank1$fuel, tank2$fuel, "\n")
出力: 20 20
空欄を埋めて実行を通す
tank2 <- tank1は同じenvironmentを指すだけの別名を作るため、片方への変更がもう片方にも見えてしまいます。
次の問題