我正在学习使用R的OOP编程,特别是参考类。
如果我有课,例如
myclass <- setRefClass(class="myclass", fields=list(x="numeric"));
我知道如果我不想为x设置任何类,我可以输入fields = list(x =“ANY”)。但是如果 我想允许x有两个可能的类,例如“数字”或“逻辑”。 “数字”和“逻辑”类不会相互继承,因此设置一个并传递另一个类会导致错误。
任何建议都将受到赞赏。
答案 0 :(得分:0)
像这样使用setClassUnion
:
setClassUnion("NumOrLog", c("numeric", "logical"))
myclass <- setRefClass("myclass", fields=list(x="NumOrLog"))
# test
myclass(x = 12) # ok
myclass(x = TRUE) # ok
myclass(x = "X") # bad
请注意,没有必要使用分号后缀R语句。