引用相等

类

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