1
> test = false and true
=> false
> test
=> false
> test = true and false #this is the point I don't understand!
=> false
> test
=> true
なぜこのような方法でルビが動作し、どうすればこの問題に遭遇しないでしょうか?ルービのブール論理 '真と偽==真'
> test = false and true
=> false
> test
=> false
> test = true and false #this is the point I don't understand!
=> false
> test
=> true
なぜこのような方法でルビが動作し、どうすればこの問題に遭遇しないでしょうか?ルービのブール論理 '真と偽==真'
優先順位。 test = true and false
はこのことを意味します
(test = true) and false
ないこの:あなたは割り当てが最後に来てほしい場合
test = (true and false)
使用は、上記のように括弧、またはその代わりにand
の&&
:
test = true && false
githubのからruby styleguide: 'andとorキーワードは禁止されています。それだけの価値はない。必ず&&と||を使用してください。代わりに。 – gracchus
ありがとう、この1つは本当に今日私を得ました...どのような奇妙な言語設計の選択... – Jason
Perlから継承されています。最初は '&&'と '||'しかありませんでした。しかし、これらはC(論理的なプリムティブとして)とシェルのように(成功/失敗を処理するために)使用されました。後者の使用では、優先順位は 'my @info = stat($ file)|| '' stat''をリストコンテキストの代わりにスカラーで呼び出す ''エラー ''を打ち消す。これらの頭痛を解決するために、低い優先順位の 'および'/'または'/'not 'が導入されましたが、新しいものを与えました。そして、RubyはPerlから得た残りのものと一緒にそれらを借りました。 –