R 在函数内部定义函数属性

标签 r function attr

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/

相关文章:

function - Go函数声明语法

jquery - 我如何获取 jquery-ui 自动完成小部件的上下文?

regex - 用 r 中正确的位数替换数字

r - mlr3 PipeOps : Create branches with different data transformations and benchmark different learners within and between branches

c++ - 使用 dyn.load 或 library.dynam 调用 R 包中的 C++ 函数

r - quanteda kwic 提取数字后跟百分比

sql - 获取 SQL 字符串中每个单词的第一个字母

php - 如何制作包含最大长度的组合数组?

javascript - 在任何情况下我必须使用 .attr() 而不是 .prop()?

javascript - jQuery 将索引编号添加到类中