我无法弄清楚如何将函数调用分配给ruby哈希.我想要做的是为散列键分配一个函数,然后使用经典的散列监视语法调用此函数.
def Foo()
puts "bar"
end
puts "Assigning"
test = { "foo" => Foo() }
puts "Executing"
test["foo"]
Run Code Online (Sandbox Code Playgroud)
此代码失败,puts "Assign"在哈希创建期间调用函数Foo,之后没有任何反应puts "Executing"
def Foo()
puts "bar"
end
puts "Assigning"
test = { "foo" => Foo }
puts "Executing"
test["foo"]
Run Code Online (Sandbox Code Playgroud)
用这个代码我收到了uninitialized constant Foo (NameError).
最后用
def Foo()
puts "bar"
end
puts "Assigning"
test = { "foo" => :Foo }
puts "Executing"
test["foo"]
Run Code Online (Sandbox Code Playgroud)
我没有输出.
有什么建议?
感谢大家的回答和建议.
我要做的是测试基于散列的调用函数方法是否比基于if/ casestatements 的等效代码更快.
funcs["foo"].call
胖子比
if func_name == "foo" …Run Code Online (Sandbox Code Playgroud)