由于我发现了一个错别字,因此发现这个代码可以工作[注意第2行中重复的-
]
foo <- function()
-------------------------
{
1
}
调用foo()
会返回-1
。 -的数量决定了返回值是正数还是负数[奇数次返回负数]。
我没有找到有关这个R函数定义的任何信息,现在我想知道为什么允许这样做以及其目的是什么。
即使是官方的R文档也没有提到这一点。 有任何想法吗?
注意:invisible(1)
无效。 当在开放{
之前有一个符号字符时,输出不会被抑制。
{}
实际上只是零个或多个R表达式的块,并且保留/返回最后一个表达式。例如,{1;2;3}
“返回”3
。从那里开始,一个前导-
就会“否定”最后一个语句,所以-{1;2;3}
返回-3
等。在这种情况下,由于返回了一个数字(或类似数字的类),它可以正常工作。如果你改成foo <- function() ---{"a"}
,它将失败。 - r2evans