题
我仍在研究我的文本冒险。使用/有功能时,我遇到了麻烦。它意味着调用一个哈希,其中密钥是使用的对象,内容包括数组;阵列中的第一个元素是目标对象,并且如果该关系转弯以匹配使用/有功能的参数,则将执行的第二个proc。
拜托,愿你澄清我如何在哈希里面的数组内存储代码块,所以我可以根据正在组合的对象留下它?
这是我的使用功能,它使用“使用对象 与”:
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
.
它只返回新的提示线。
解决方案
您忘记了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!
. 不隶属于 StackOverflow