eval
参照クラスのメソッドを呼び出すために使用する必要があります。以下はおもちゃの例です。
MyClass <- setRefClass("MyClass",
fields = c("my_field"),
methods = list(
initialize = function(){
my_field <<- 3
},
hello = function(){
"hello"
},
run = function(user_defined_text){
eval(parse(text = user_defined_text))
}
)
)
p <- MyClass$new()
p$run("hello()") # Error: could not find function "hello" - doesn't work
p$run(".self$hello()") # "hello" - it works
p$run("hello()") # "hello" - now it works?!
p <- MyClass$new()
p$run("my_field") # 3 - no need to add .self
できると思いますがeval(parse(text = paste0(".self$", user_defined_text)))
、よくわかりません:
.self
フィールドではなくメソッドを評価する必要があるのはなぜですか?.self
一度使ったら必要なくなったのはなぜですか?