Lập trình hướng đối tượng với S3 và R6 trong R
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)
Tôi là số tam giác
Tôi là số tự nhiên
Tôi là số numeric

what_am_i(x)
Tôi là số tam giác
Tôi là số tự nhiên
Tôi là số numeric

what_am_i(x)
Tôi là số tam giác
Tôi là số tự nhiên
Tôi là số numeric

what_am_i(x)
Tôi là số tam giác
Tôi là số tự nhiên
Tôi là số numeric

inherits() để kiểm tra lớp bất kỳNextMethod() để xâu chuỗi lời gọi phương thứcLập trình hướng đối tượng với S3 và R6 trong R