java中基本数据类型和类之间的关系

cuxqih21  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(603)

目前,我对原始数据类型(如数字或字符)和r中的类之间的关系有点困惑。可以合理地说,原始数据类型是r中的内置类,其操作(如+或-)对应于内置方法吗?原始数据类型是否也在内部实现为类(不像java区分原始数据类型和 Package 类)?

hs1ihplo

hs1ihplo1#

类型和类是不同的概念。类型主要对应于底层c代码中使用的数据类型。引用r语言定义第2章:
r特定函数typeof返回r对象的类型。注意,在r下面的c代码中,所有对象都是指向typedef sexprec结构的指针;不同的r数据类型在c中用sexptype表示,sexptype决定了如何使用结构各个部分中的信息。
相反,类是一个r概念。注意,r有几个不同的oop系统,其中主要的是s3类。令人困惑的部分可能是,存在与数据类型相对应的隐式类(r中的所有内容都有显式或隐式s3类)。
以data.frames为例:

  1. # create an object of type "list"
  2. x <- list(a = 1, b = 2)
  3. typeof(x)
  4. # [1] "list"
  5. class(x)
  6. # [1] "list"
  7. # this is an implicit class
  8. attributes(x)
  9. # $names
  10. # [1] "a" "b"
  11. # no class attribute
  12. class(x) <- "data.frame"
  13. attr(x,"row.names") <- 1L
  14. # don't create data.frames this way, I only do this for didactic reasons
  15. x
  16. # a b
  17. # 1 1 2
  18. attributes(x)
  19. # $names
  20. # [1] "a" "b"
  21. #
  22. # $class
  23. # [1] "data.frame"
  24. #
  25. # $row.names
  26. # [1] 1
  27. is.data.frame(x)
  28. # [1] TRUE
  29. class(x)
  30. # [1] "data.frame"
  31. # this is an explicit class
  32. typeof(x)
  33. # [1] "list"
  34. # still the same type
展开查看全部

相关问题