R 是否可以在函数内部定义函数属性?
可以在外部定义,但是函数内部有自引用的表示法吗?
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
最佳答案
如果你想用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")
关于R 在函数内部定义函数属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255563/