繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM