如何使用一个setMethod作为功能部分使用以下两个行代码相同?喜欢签名(" Triangle | Square")。谢谢。
setMethod("sides", signature("Triangle"), function(object) 3)
setMethod("sides", signature("Square"), function(object) 3)
答案 0 :(得分:4)
通常的方法是
.sides_body = function(object) 3
setMethod("sides", "Triangle", .sides_body)
setMethod("sides", "Square", .sides_body)
除非存在类关系,并且各个类的定义相同
setClass("Shape")
setClass("Triangle", contains="Shape")
setClass("Square", contains="Shape")
setClass("Circle", contains="Shape")
setMethod("sides", "Shape", function(boject) 3)
setMethod("sides", "Circle", function(object) Inf)