我目前正在阅读Chambers' Software for Data Analysis中的第9章,而在第337页,他说:
相反,对于classe有一些固有的限制contains=
论点。此处提供的类必须是:
- ...
- 基本R对象类型之一,但不是那些引用或非标准类型;例如,不是
醇>"environment"
或"symbol"
(类"name"
的对象类型)。
重点是我的。
我天真的问题是,为什么对象类型(symbol
)的名称与类名(name
)不同?这与我对作为类实例的对象的理解发生冲突。还有其他这样的例子,我应该如何看待这里的命名约定?
答案 0 :(得分:1)
我认为这会阻止你构建或需要另一层次的间接。可以假设解释器能够处理“包含”规范中的预定义对象类型,但是不能处理更灵活的类型或者需要查找传递给它的值中的内容。 “符号”是一种寻找某种东西的方式,而不是“某种东西”本身。
除了“模式”和“类”之外,R还有“存储模式”和“类型”:
> x=as.name('y')
> x
y
> mode(x)
[1] "name"
> class(x)
[1] "name"
> typeof(x)
[1] "symbol"
> storage.mode(x)
[1] "symbol"