: 클래스의
self
내부 방법, self
는 객체를 참조합니다. 개체의 공공 회원 (모두가 지금까지 본 적이)는 self$add()
처럼 개인 회원가 액세스, self$x
public 멤버는
self
에 액세스하는 반면
private
에 액세스 할 수 있습니다 private$queue
같은 private
와.
그래서, self
을 통해 당신 수 액세스 개인 방법, 당신은 private
를 통해해야 할 경우에도 마찬가지입니다. 문서가 어떻게 그렇게 작동해서는 안된다고 말하는지를 보면서 사라질 수있는 행동에 의존하지 마십시오.
말했다
, 나는 self
를 사용하여 개인 메서드에 액세스 할 수 없습니다
library(R6)
bar <- R6Class("bar",
private = list(
foo = function() {
message("just foo it")
}
),
public = list(
call_self = function() {
self$foo()
},
call_private = function() {
private$foo()
}
)
)
b <- bar$new()
b$call_private()
# just foo it
b$call_self()
# Error in b$call_self() : attempt to apply non-function
이 신속하고 명확한 답변을 주셔서 감사합니다! – Erdi