在自定义类上使用S3索引函数“[”时,是否可以返回不可见对象?例如,在下面的代码中,有没有办法让最后一行代码不打印?
treepanel
答案 0 :(得分:6)
您遇到了由原始函数引起的可见性机制问题。考虑:
> length.x <- function(x) invisible(23)
> length(structure(1:10, class="x"))
[1] 23
> mean.x <- function(x) invisible(23)
> mean(structure(1:10, class="x"))
> # no output
length
是原始的,但mean
不是。来自 R Internals :
是否打印顶级R表达式的返回值由全局布尔变量R_Visible控制。根据文件src / main / names.c中表的eval列,在进入所有原始和内部函数时设置(为true或false):宏PRIMPRINT可以提取相应的设置。
和
内部和基本函数强制返回R_Visible的文档设置,除非允许C代码更改它(上面的例外由值为2的PRIMPRINT指示)。
所以看起来你不能强迫来自[
,length
等原始泛型的隐形返回,你必须采用像Alex所建议的那样的解决方法。
答案 1 :(得分:3)
问题是,<div ng-repeat="data in list_items | filter:{selected:false}">
{{ data.name }}
</div>
返回的值不属于[.mat
类,因为您使用的是mat
,因此它使用默认的打印方法来处理它所拥有的任何类。要解决此问题,请确保返回的对象仍为unclass
,并为mat
个对象定义打印方法。
mat