【发布时间】:2016-11-24 10:14:01
【问题描述】:
鉴于 Ruby 2.2
module A
def self.a
"a"
end
end
如何访问A.a,以便分配给变量并稍后调用它?
我尝试了以下方法:
x = A::a.to_sym
send x # NoMethodError: undefined method `a' for main:Object
以下作品:
x = -> { A.a }
x.call
既然我在一个数组中有命名空间函数和非命名空间函数,有没有办法可以用send 做到这一点?
我真的不想用include A 污染命名空间
【问题讨论】:
-
但是你的意图是什么......为什么你需要这样做?
-
您上面的代码可以访问“a”,问题是您试图在 main 上调用 :a 并且该方法不存在
-
songyy,我有一个存在于不同命名空间中的函数列表,我想稍后执行。
标签: ruby metaprogramming ruby-2.2