Je voudrais accéder aux déclarations de cas d'expression à partir d'une clause then à savoirY at-il un moyen d'accéder à l'expression à partir d'une déclaration de cas ruby?
food = "cheese"
case food
when "dip" then "carrot sticks"
when "cheese" then "#{expr} crackers"
else
"mayo"
end
où dans ce cas expr serait la valeur actuelle de la nourriture. Dans ce cas je sais, je pourrais simplement accéder à la variable de nourriture, cependant il peut y avoir des cas où la valeur n'est plus accessible (array.shift etc.). Autre que de déplacer l'expr dans une variable locale et y accéder, y a-t-il un moyen d'accéder directement à la valeur des cas expr?
Roja
p.s. Je sais que cet exemple spécifique est trivial c'est un exemple de scénario.
Hmm je pense que cela est en effet la "voie" honte qu'elle finisse par être assignée à un global: S apprécie beaucoup l'incite! –
'x' ici peut être une variable de n'importe quelle portée. Il affecte uniquement à un global si vous l'attribuez à un global. Tout cela dans ruby, l'état de l'état du cas renvoie une valeur. Vous capturez simplement et optionnellement cette valeur dans une variable de votre choix. –
Cela ne semble fonctionner que si vous utilisez la correspondance, alors $ 1 est le résultat de la correspondance. Si vous n'utilisez pas de correspondance, la réponse de Wayne Conrad est meilleure et plus claire. – Josh