对象是什么formals(function(x){})$x?
它在函数的形式中找到,绑定到没有默认值的参数.
有没有其他方法来引用这个奇怪的对象?除了表示空函数参数之外,它是否还有其他作用?
以下是可在控制台中检查的一些属性:
> is(formals(function(x){})$x)
[1] "name" "language" "refObject"
> formals(function(x){})$x
> as.character(formals(function(x){})$x)
[1] ""
Run Code Online (Sandbox Code Playgroud)
编辑:以下是获取此对象的其他一些方法:
alist(,)[[1]]
bquote()
quote(expr=)
Run Code Online (Sandbox Code Playgroud)
formals(function(x) {})?好吧,首先(并记录在案?formals),formals(function(x) {})返回一个pairlist:
is(formals(function(x){}))
# [1] "pairlist"
Run Code Online (Sandbox Code Playgroud)
与列表对象不同,pairlist对象可以具有不包含值的命名元素 - 在构造具有可能的可选形式参数的函数时非常好.来自?pairlist:
允许使用没有值的标记参数,而'list'只是忽略它们.
为了看到差异,比较alist(),创建pairlists,list()构建'普通旧'列表:
list(x=, y=2)
# Error in list(x = , y = 2) : argument 1 is empty
alist(x=, y=2)
# $x
#
# $y
# [1] 2
Run Code Online (Sandbox Code Playgroud)
formals(function(x) {})$x?现在问你的问题是什么formals(function(x) {})$x.我的理解在某种意义上说它的真正价值在于"空符号".但是,你不能从R内部得到它,因为"空符号"是R的开发人员 - 非常多的设计 - 试图完全隐藏R用户.(有关空符号的有趣讨论,以及为什么它保持隐藏,请参阅此处开始的线程).
当一个人试图通过索引一个pairlist 的空值元素来获取它时,R的开发人员通过让R返回元素的名称而不是其verbotten-for-public-viewing 值来阻止尝试.(当然,这是您问题中显示的名称对象).
| 归档时间: |
|
| 查看次数: |
367 次 |
| 最近记录: |