散列分配中的匿名方法

时间:2011-09-28 16:31:41

标签: ruby anonymous-function

Ruby中有没有这样的东西:

hash = {:foo => 'bar',:bar => lambda {条件?返回'value1':返回'value2'}}

实际代码不起作用(显然),我知道我可以在哈希赋值之前执行逻辑,但是在这样的赋值内部工作会很好。这样的事情有可能吗?

2 个答案:

答案 0 :(得分:2)

你不需要lambda,只需这样就可以了:

hash = {
    :foo => 'bar',
    :bar => condition ? 'value1' : 'value2'
}

答案 1 :(得分:0)

或者如果你想在哈希上使用函数结果,

hash= {
    :foo=> 'foooooo',
    :bar=> lambda {
        if condition
            value1
        else
            value2
        end
    }.call
}