R에서 S3와 R6로 배우는 Object-Oriented Programming
Richie Cotton
Data Evangelist at DataCamp
x <- c(1, 3, 6, 10, 15)class(x) <- c( "triangular_numbers", "natural_numbers", "numeric" )
is.numeric(x)
TRUE
is.triangular_numbers(x)
Error: could not find function "is.triangular_numbers"
inherits(x, "triangular_numbers")
TRUE
inherits(x, "natural_numbers")
TRUE
inherits(x, "numeric")
TRUE
what_am_i <- function(x, ...) {
UseMethod("what_am_i")
}
what_am_i.triangular_numbers <- function(x, ...) {
message("I'm triangular numbers")
NextMethod("what_am_i")
}
what_am_i.natural_numbers <- function(x, ...) {
message("I'm natural numbers")
NextMethod("what_am_i")
}
what_am_i.numeric <- function(x, ...) {
message("I'm numeric")
}
what_am_i(x)
저는 삼각수입니다
저는 자연수입니다
저는 numeric입니다

what_am_i(x)
저는 삼각수입니다
저는 자연수입니다
저는 numeric입니다

what_am_i(x)
저는 삼각수입니다
저는 자연수입니다
저는 numeric입니다

what_am_i(x)
저는 삼각수입니다
저는 자연수입니다
저는 numeric입니다

inherits()로 임의의 클래스를 검사합니다NextMethod()로 메서드 호출을 연결합니다R에서 S3와 R6로 배우는 Object-Oriented Programming