我仍在研究我的文本冒险。使用/有功能时,我遇到了麻烦。它意味着调用一个哈希,其中密钥是使用的对象,内容包括数组;阵列中的第一个元素是目标对象,并且如果该关系转弯以匹配使用/有功能的参数,则将执行的第二个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!
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top