2013-02-28 2 views
3

setRefClass을 만들었으므로이 클래스의 새 인스턴스를 만들 때 setXXX, getXXX을 사용하여 필드에 액세스 할 수 있도록 접근자를 구현하는 방법을 알고 싶습니다. 초기화 방법에서 .self$accessors(names(.self$fields()))을 사용하려고 생각했지만 작동하지 않는 것 같습니다.R setRefClass 접근 자

pathRoot <- setRefClass(
    Class = "pathRoot", 
    fields = list(
      # basic info of path 
      W = "character", 
      Y = "character", 
      H = "character" 
      ), 
    ) 

답변

3

automatatically 게터와 세터는 단지 accessors있어서 사용 생성하려면 : 또한 $ 통해 변수에 액세스 할 수

pathRoot$accessors(c("W", "Y", "H")) 

p = pathRoot$new(W="A",Y="B",H="C") 
R> p$getY() 
[1] "B" 
R> p$setW("Hi") 
R> p$getW() 
[1] "Hi" 

을, 예를 들어

p$W 
+1

클래스 정의에 추가 할 수있는 방법이 있습니까? – user1176316

+0

나는 그렇게 생각하지 않는다. (그러나 나는 그것에 대해 정말로 생각해 본 적이 없다.) 나는 보통 클래스를 정의하고 그 밑에'accessors' 라인을 추가한다. – csgillespie

+0

좋아, 나는 밑줄로 갈 것이다. 그러나 그것은 매우 깨끗하지 않다 (나의 견해). 너의 도움을 위해 thx – user1176316