を扱うには、おそらく既に尋ねたが、私はそれを見つけることができませんでした...ここ2一般的な状況です(私のためにしばらくのプログラミングレール...)Rubyで書くことがイライラしている:ルビー糖衣構文:NILS
"a string".match(/abc(.+)abc/)[1]
この場合、文字列が一致しないためにエラーが発生するため、[]演算子はnilで呼び出されます。それは単に一致エラー
せずにnilを返さなかった場合は第2の状況はこの1つである、簡単で
temp="a string".match(/abc(.+)abc/); temp.nil? ? nil : temp[1]
::私は何を見つけるしたいことは、次のよりよい代替案である
私はそれがnilでない場合にのみ、VARに何かを割り当てるこの場合var = something.very.long.and.tedious.to.write
var = something.other if var.nil?
、私はsomething.otherを割り当てますnilをする場合には、それはだ...
任意の提案? ありがとう!最初の場合
私は(はい、それは簡単なOR ..です)私はそれが愚かだった2番目の質問について謝罪非常に疲れている[OK]を、最初のものはしかし興味深いのまま.. – luca
実は、第2のものも面白かった。私は簡単に間違っていました。なぜなら、「または」オペレータの優先順位を忘れていたからです。 'または'の誤用はかなり一般的な偽のパスであり、強調表示する価値があります。 –
これはこの質問に非常によく似ています:http://stackoverflow.com/questions/4371716/looking-for-a-good-way-to-avoid-hash-conditionals-in-ruby/ – mpd