我有这个红宝石代码:
class Variable < Struct.new(:name)
def reduce(environment)
environment[name]
end
end
我这样称呼它:
Variable.new(:x).reduce({x:3})
Variable.new(':x').reduce({x:3})
在这两种情况下,结果都是nil
。你能告诉我我做错了吗?
答案 0 :(得分:2)
它是有效的,第一个示例在我的系统上返回3,但在第二个示例中,:
不起作用,因为它不会检查键作为符号,而是作为字符串。您的密钥被定义为符号:x: 'value'
使密钥成为符号。如果您需要使用字符串:'x' => 'value'
在ruby-2.0.0-p247上进行了测试