将proc存储在哈希中的数组中



我仍在进行文本冒险。我的使用/功能有问题。它是指调用一个Hash,其中密钥是所使用的对象,内容包括一个数组;数组中的第一个元素是目标对象,第二个元素是Proc,如果该关系与use/wwith函数的参数匹配,则将执行该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

它只返回一个新的提示行。

您忘记.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!

相关内容

  • 没有找到相关文章

最新更新