Code Fix

上級 › 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

空欄を埋めて実行を通す

広告
広告スロット(未設定)

environment はベクトルと違い参照渡しのように振る舞う

一方environmentは参照として渡されるため、関数内でその中身を書き換えると呼び出し元のenvironmentにもその変更が反映されます。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)