可能であれば..Rubyで括弧を入れたり外したりしますか?
回答:
Rubyでは、一般に、この誘惑に抵抗するために括弧を省略できます。
括弧を使用すると、コードがわかりやすくなります。次の場合を除いて、一般的なRubyスタイルはそれらを使用することです。
- 空の括弧は常に省略してください
- かっこは、ERb区切り文字で囲まれた単一のコマンドから除外できます。ERbマーカーは、コードが引き続き読み取り可能であることを確認します。
- 単一のコマンドと単一の単純な引数である行は、括弧なしで記述できます。個人的には、これを行うことはますます少なくなっていますが、それでも完全に読みやすくなっています。私は、複数の引数があり、括弧がない通常のRubyコードの1行は好きではない傾向があります。
- 多くのRubyベースのドメイン固有言語(Rakeなど)は、ステートメントに対してより自然な言語感覚を維持するために括弧を使用していません。
私は将来の私を助けるためにコメントとしてparensを使用します...現在の私よりも脳細胞が少ない可能性が高いです:-)
2年前に書いたコードを見て、それを誤解して、修正中に何かを壊してしまうことほど悪いことはありません。
もしparensが将来私を数分(または数時間)節約してくれるなら、私は声明を明確にするために必要なだけ入れます。
assert_equalなどのアサーションを実行するときは、それらを除外する傾向があります。多分それはそれをドメイン固有言語のようにすることです。
長い間プログラミングをしていると、かっこを追加するための「かゆみ」が生じる可能性があります。多くの場合、これには十分な理由があります。
私の意見では、コードは目には簡単ですが、まだ問題は発生していません。括弧が必要な場合は、デバッグスクリプトを実行する前に、事前に知っておく必要があります。
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
ました。私は数週間しかルビーを学んでいません。私が働いている場所では、可能な限り少ない文字数を使用しています。他の言語から来た場合は、学習があります。暗黙のハッシュ、シンボルの配列を渡し、シンボルを関数に渡すときを知るための曲線...私はファンではありません。
if owner.is_a? thing and x > 1
and
同じ演算子の優先順位はありません&&
持っている