给定两个整数:
a <- 1L
b <- 1L
正如我所料,加、减或乘它们也会得到一个整数:
class(a + b)
# [1] "integer"
class(a - b)
# [1] "integer"
class(a * b)
# [1] "integer"
但是将它们分开会给出一个数字:
class(a / b)
# [1] "numeric"
我想我可以理解为什么:因为整数的其他组合(例如a <- 2L
和b <- 3L
)会返回一个数字,所以更一般的做法是始终返回一个数字。
现在到幂:
class(a ^ b)
# [1] "numeric"
这对我来说有点意外。谁能解释为什么它是这样设计的?