15

R でバインディングと環境調整をいじると、次の 3 つの関数があります。

  1. lockEnvironment(env)env をロックして、env に新しいシンボルを追加できないようにします。
  2. lockBinding(sym, env)env 内の sym をロックして、変更できないようにします
  3. unlockBinding(sym, env)後者のロックを緩めます。

しかし、どうすれば環境のロックを解除できますか? 多分私は何かを見落としているかもしれませんが、RはunlockEnvironmentenv のロックを解除する関数または同等のメカニズムを公開していないようです? これには何らかの設計上の理由がありますか?

この関数の使用方法の例を次に示します。

e <- new.env()
lockEnvironment(e)
get("x",e)
assign("x",2,envir=e)
lockBinding("x", e)
get("x",e)
unlockBinding("x", e)
assign("x",3,envir=e)

## how to relese e lock?
unlockEnvironment(e) ## the function doesn't exist
4

1 に答える 1