是否有可能在函数内部定义一个函数属性?
它可以在外部定义,但在函数内部是否有自引用的符号?
f2 = function(x) {
x/2
attr(thisObject(),'type')='half' #something like thisObject()
}在函数之外很容易做到这一点:
attr(f2,'type')='half'在某种情况下,我需要知道传递的是什么类型的函数:
fCalc=function(f=f2,x){
if(attr(f,'type')=='half') {
cat('ok\n')
return(f(x))
} else cat( 'not ok')
}
fCalc(f2,4)
ok
[1] 2发布于 2017-09-17 00:48:28
如果你想用R编写Java程序,你可以定义一个函数工厂:
fact <- function(args, expr, attrib)
{
f <- function() { }
formals(f) <- args
body(f) <- substitute(expr)
attr(f, "type") <- attrib
f
}
fact(alist(x=), x/2, "foo")https://stackoverflow.com/questions/46255563
复制相似问题