小编ric*_*ico的帖子

Ruby:如何将函数映射到散列

我无法弄清楚如何将函数调用分配给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)

ruby hash function

5
推荐指数
1
解决办法
3793
查看次数

标签 统计

function ×1

hash ×1

ruby ×1