上級 › environment はベクトルと違い参照渡しのように振る舞う › パターン2
environment はベクトルと違い参照渡しのように振る舞う
Rのベクトルやリストは関数に渡すと複製され、関数内での変更は呼び出し元に影響しません。
1 make_wallet <- function() { 2 e <- new.env() 3 e$balance <- 0 4 e 5 } 6 wallet1 <- make_wallet() 7 wallet2 <- _____________ ^ 8 wallet2$balance <- 50 9 cat(wallet1$balance, wallet2$balance, "\n")
出力: 50 50
空欄を埋めて実行を通す
ベクトルなら代入でコピーが作られますが、environmentは参照が共有されるため、wallet2の変更がwallet1にも及びます。
次の問題