2011-09-28 4 views
1

Y at-il quelque chose comme cela possible en Ruby:méthode anonyme dans l'affectation de hachage

hash = {: foo => 'bar',: bar => lambda {état? return 'value1': return 'value2'}}

Ce code réel ne fonctionne pas (clairement), et je sais que je pourrais juste faire la logique avant l'assignation de hachage, mais ce serait bien de travailler dans la tâche comme ça. Une telle chose est possible?

Répondre

2

Vous n'avez pas besoin d'un lambda pour cela, tout cela devrait fonctionner:

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

Ou si vous voulez utiliser un résultat de fonction de hachage,

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