我还在处理文字冒险。我在使用/ with功能时遇到问题。它用于调用Hash,其中键是使用的对象,内容包括数组;数组中的第一个元素是目标对象,第二个元素是当该关系变为匹配use / 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
它只返回一个新的提示行。
答案 0 :(得分:1)
你忘记了.call
过程:
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!