[英]Storing a proc inside an array inside a hash
我仍在进行文字冒险。 我在使用/使用功能时遇到麻烦。 它旨在调用一个哈希,其中的键是使用的对象,内容包括一个数组; 数组中的第一个元素是目标对象,第二个是Proc,如果该关系变为与use / with函数的参数匹配,则将执行该Proc。
请,您可以向我说明如何将代码块存储在哈希表中的数组中,以便以后可以根据组合的对象来调用它吗?
这是我的use函数,它使用“ use object with ”:
def use(object, with)
if INTERACTIONS[object][0] == with
INTERACTIONS[object][1]
end
end
这就是我定义关系的方式(到目前为止只有一种):
INTERACTIONS = {"key" => ["clock", p = Proc.new{puts "You open the clock!"}]}
每当我打字
use key with clock
它只返回新的提示行。
您忘记了.call
proc:
INTERACTIONS = {"key" => ["clock", Proc.new {puts "You open the clock!"}]}
def use(object, with)
if INTERACTIONS[object][0] == with
INTERACTIONS[object][1].call # procs need to be `call`ed :)
end
end
use("key", "clock") # => You open the clock!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.