Ruby 散列分配中的匿名方法

Ruby 散列分配中的匿名方法,ruby,anonymous-function,Ruby,Anonymous Function,Ruby中是否有类似的功能: hash={:foo=>'bar',:bar=>lambda{condition?返回'value1':返回'value2'} 实际的代码不起作用(很明显),我知道我可以在散列赋值之前执行逻辑,但在赋值内部这样做会更好。这样的事情可能吗?你不需要lambda,只要这样就行了: hash = { :foo => 'bar', :bar => condition ? 'value1' : 'value2' } 或者,如果要在哈希上使用函数结

Ruby中是否有类似的功能:

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


实际的代码不起作用(很明显),我知道我可以在散列赋值之前执行逻辑,但在赋值内部这样做会更好。这样的事情可能吗?

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

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

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

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