Car <- setRefClass("Car",
fields = list(model = "character"))
car1 <- Car$new(model = "Lada")
car2 <- Car$new(model = "Lada")
car3 <- car1
# Reference objects: the same object or not
equal1 <- identical(car1, car2)
# equal1 = FALSE
equal2 <- identical(car1, car3)
# equal2 = TRUE
# S3 values are equal by content
new_point <- function(x, y) {
structure(list(x = x, y = y), class = "Point")
}
equal3 <- identical(new_point(1, 2),
new_point(1, 2))
# equal3 = TRUE
cat("equal1 =", equal1, "\n")
cat("equal2 =", equal2, "\n")
cat("equal3 =", equal3, "\n")
# == does not compare objects at all
msg <- tryCatch(car1 == car3,
error = conditionMessage)
cat("msg =", msg, "\n")
# msg = comparison (==) is possible only for
# atomic and list types