必要でない場合でも、論理ステートメントで括弧を使用する必要がありますか?


100

ブール条件がa AND b OR c AND dありAND、操作優先順位がの言語よりも高い言語を使用しているとしますOR。次のコード行を書くことができます。

If (a AND b) OR (c AND d) Then ...

しかし実際には、それは次と同等です:

If a AND b OR c AND d Then ...

余分な括弧を含めることに賛成または反対する議論はありますか?実用的な経験は、読みやすさのためにそれらを含める価値があることを示唆していますか?それとも、開発者が実際に座って自分の言語の基本に自信を持つ必要があるという兆候ですか?


90
私は怠け者かもしれませんが、読みやすさのためにそのような状況のほとんどで括弧を使用することを好みます。
トールステンミュラー

6
私も。私は私の言語の基本に自信/有能になるのが面倒だから、読みやすさのためにもっとや​​るのをやめたいと思っています。
ジェフブリッジマン

16
括弧の適切な使用は、文法の適切な使用に似ています。2 * 3 + 2と同じかもしれません(2 * 3) + 2が、2番目の方が読みやすいです。
-Reactgular

16
@Mathew数学が苦手なら。より複雑な場合は、必ず括弧を使用してください。しかし、目がくらむほど明白なもの(BODMAS…)の場合は混乱のために読みやすくするよりも読みやすさが低下します。
コンラッドルドルフ

3
とはいえ、Basic、Python、SQLでもAND / ORの同じ優先順位が当てはまります...私の印象では、これは現代言語の大部分のルールです(すべてではありませんが)。
ティムグッドマン

回答:


117

優れた開発者は、明確正しいコードを書くよう努めています。条件付きの括弧は、厳密に必要ではない場合でも、両方に役立ちます。

明快、コード内のコメントのように括弧を考える:彼らは厳密には必要ではなく、理論的には有能な開発者はそれらなしでコードを把握することができるはずです。それでも、これらのキューは非常に役立ちます。

  • コードを理解するために必要な作業を減らします。
  • 開発者の意図の確認を提供します。

さらに、インデント、空白、およびその他のスタイル標準と同様に、余分な括弧は、コードを論理的に視覚的に整理するのに役立ちます。

用として正し、括弧なしの条件は愚かな過ちのためのレシピです。それらが発生した場合、それらは見つけるのが難しいバグになる可能性があります。これは、多くの場合、誤った状態がほとんどの場合正しく動作し、たまにしか失敗しないためです。

そして、あなたがそれを正しくしても、コードに取り組む次の人は、式にエラーを追加するか、ロジックを誤解して、他の場所にエラーを追加するかもしれません(LarsHが正しく指摘しているように)。

andand を組み合わせた式or(および同様の優先順位の問題を伴う算術演算)には、常に括弧を使用します。


3
しかし、コメントは謝罪であると言っていると聞きました(悪い/読みにくいコードの場合)...あなたがそれをもっとうまく書けた可能性は十分にあります。かっこについても同様のことが言えると思います。
ジェフブリッジマン

6
正確性の別の側面は、変更によってそれを保持することです:元の開発者は、最初に目的とコンテキストを念頭に置いてコードを書いたときに括弧なしで優先権を得ることができますが、後でやって来てすべてを覚えていない式に用語を追加すると、詳細が混乱する可能性があります。(これはすでにほとんど暗示されていましたが、強調する価値があると感じました。)
LarsH

1
@LarsH、ありがとう、これを答えに明示的に追加しました。

8
+1「開発者の意図の確認を提供します。」-プログラマー(すべてではないかもしれませんが、ここにいるすべてのプログラマー...)は、コンパイラーが最も複雑なロジックで何をするかを理解できます。絶対に誰もが最も簡単な.....超えて何のためのトラックダウン数週間(自身を含む)元の開発者が意図したものうまくできません
mattnz

2
@JeffBridgmanは、「コメントは時々コードの匂いになりかねない」というかなりよく知られた観点を参照していたと思います。たとえば、「コメントが不要になるようにコードをリファクタリングできますか?」という質問を含むジェフアトウッドの要約を参照してください。もしあなたのコメントがあなたのコードが直観的でないほどひどいものである理由を説明しているなら、それは間違いなく何かが間違っているというヒントになる可能性があると主張します。このような場合には、コードを簡素化することをお勧めします。私はあなたの実際の答えに完全に同意しますが、括弧をつけます。
ダニエルB

94

言語を理解していることに自信があるかどうか重要ではありません。さらに重要なのは、後に続くn00bの言語を把握することです。

可能な限り明確で最も明確な方法でコードを記述してください。余分な括弧は、しばしば(常にではありませんが)役立ちます。多くの場合、1行に1つのステートメントのみを入力すると役立ちます。多くの場合、コーディングスタイルの一貫性が役立ちます。

括弧が多すぎるというようなこともありますが、アドバイスが必要ない状況の1つです。見ればわかるでしょう。その時点で、括弧を削除するのではなく、コードをリファクタリングしてステートメントの複雑さを軽減します。


72
昨年開発したコードが苦手、疲れている、または対処しているソロ開発者であっても、忘れないでください。理解度はn00bのレベルまで下がります。
ダン・ニーリー

30
There is such a thing as too many parenthesis-あなたは明らかにlisperではない;)
ポール

18
それは悪いアドバイスです:初心者のために書いてはいけません。これにより、初心者向けの本の最初の2章を超える定評のあるイディオムを使用できないため、コードの品質が(かなり)低下します。
コンラッドルドルフ

10
@KonradRudolph:多分そうかもしれませんが、コンピュータプログラミングの芸術をカバーからカバーまで知っている人だけのために書いたり、後でコードをデバッグする必要があり、あなたがそのようにした理由がわからない。コードは書かれているよりもずっと多く読まれます。
ヘイレム

15
@dodgethesteamroller:多くの有能な/尊敬される開発者が、長年気付かれないままの優先バグ(誰もが時々悪い日を持っている)を導入しすぎているのを見てきました。優先順位のルールを知っている優秀な開発者にとって、検出されない間違い/タイプミスのリスクは高すぎます。他のすべての人にとってリスクは高くなります。最高の開発者とは、以前は言語の優先順位規則を覚えていた開発者でしたが、非自明なものには括弧を習慣的に使用していたため忘れていました。
ブレンダン

31

はい

常に括弧を使用する必要があります...優先順位を制御しません...コンパイラの開発者が行います。括弧を使用しないことについて私に起こった話を次に示します。これは、2週間で何百人もの人々に影響を及ぼしました。

現実世界の理由

メインフレームアプリケーションを継承しました。ある日、澄んだ青から動き出しなくなりました。それだけです...パフは止まりました。

私の仕事は、できるだけ速く動作させることでした。ソースコードは2年間変更されていませんでしたが、突然停止しました。コードをコンパイルしようとすると、XX行目でエラーが発生しました。XX行目を見て、XX行目が壊れる原因がわからなかった。このアプリケーションの詳細な仕様を尋ねたところ、何もありませんでした。行XXは犯人ではありませんでした。

コードを印刷し、上から下へとレビューし始めました。私は何が起こっているかのフローチャートを作成し始めました。コードは非常に複雑であるため、それを理解することすらできませんでした。私はそれをフローチャート化しようとしてあきらめました。特に、アプリケーションが何をしたのか、依存関係チェーンのどこにあるのかの詳細がなかったので、その変更が残りのプロセスにどのように影響するかを知らずに変更を加えることを恐れました。

そこで、ソースコードの先頭から始め、whitespceとラインブレーキを追加して、コードを読みやすくすることにしました。私は、結合条件ならば、いくつかのケースでは、ありました、気づいたANDORし、されていたものをデータとの間で明確に区別はなかったANDエドとどのようなデータがされていたORエド。そこでANDOR条件と条件を括弧で囲んで読みやすくしました。

ゆっくりと掃除しながら、定期的に作業を保存しました。ある時点でコードをコンパイルしようとすると、奇妙なことが起こりました。エラーはジャンプして元のコード行を通過し、さらに下になりました。だから私は続けて、括弧ANDOR条件を分けました。私はそれをきれいにし終わったとき、それは働きました。図に行く。

次に、オペレーションショップを訪問して、メインフレームに新しいコンポーネントを最近インストールしたかどうかを尋ねることにしました。はい、最近コンパイラをアップグレードしました。うーん。

古いコンパイラーは、式に関係なく左から右に式を評価したことがわかります。コンパイラの新バージョンもの不明確な組み合わせを意味し、右が、あいまいなコードに左から式を、評価ANDし、OR解決できませんでした。

私がこれから学んだ教訓...常に、常に、互いに組み合わせて使用されるとき、分離されたAND条件とOR条件に括弧を使用します。

簡単な例

IF Product = 191 OR Product = 193 AND Model = "ABC" OR Product = 201 OR Product = 202 AND Model = "DEF" ...(これらのいくつかで散らかったコード)

これは、私が遭遇したものの単純化されたバージョンです。複合ブール論理ステートメントを使用した他の条件もありました。

私はそれを変更したことを覚えています:
IF ((Product = 191 OR Product = 193) AND Model = "ABC") OR ((Product = 201 OR Product = 202) AND Model = "DEF") ...



仕様がなかったので書き直すことができませんでした。元の著者は長い間いなくなっていた。強いプレッシャーを覚えています。貨物船全体が港で立ち往生し、この小さなプログラムが機能しなかったため、荷を下すことができませんでした。警告なし。ソースコードに変更はありません。かっこを追加するとエラーがシフトすることに気付いた後、ネットワークオペレーションに何かを変更したかどうかを尋ねることになりました。


22
これは、優れたコンパイラーを持つことが重要である理由のより良い例のようです。
-ruakh

6
@CapeCodGunny:そうではなかったと思います。しかし、ここでの問題は、重大な変更を行った悪いコンパイラベンダーがあったことです。より良いコンパイラを使用している場合でも、「常に、常に、常に」その問題を回避するためのレッスンをどのように学んだかわかりません。
-ruakh

5
@ruakh-いいえ、ベンダーは単にコードパーサーを変更しました。私は古い学校です。コーディングしたか関与したすべてのシステムを記憶する能力に依存していません。ドキュメントがなければソースコードだけです。ソースコードの読み取りと追跡が困難な場合、非常にストレスの多い状況になります。空白を使用しないプログラマーは、おそらく私が直面したような状況に対処する必要がなかったでしょう。また、次のようなコードを記述する方が理にかなっていることも学びました。Dickを参照してください。ジェーンをご覧ください。Dick AND Janeを参照してください。読みやすく、コメントアウトして、フォローしやすいシンプルなステートメント。
マイケルライリー-別名ガニー

2
すばらしい話ですが、括弧を使用する理由ではないことに同意します。および/または優先順位はほぼ普遍的であり、考えられる変更の可能性が最も低いものです。このような標準的な基本操作で一貫した動作に頼ることができない場合、コンパイラーはゴミになり、何をしようとも無駄になります。あなたの話は100%がコンパイラーの問題であり、0%がコードの問題です。特に、デフォルトの動作が単純な左から右への評価である場合、順序は常に明確であるため、なぜ括弧を使用するのでしょうか?

7
ここで学んだ教訓があると思います... 特に、代替案が曖昧なコードに関してコンパイラの文書化されていない動作に依存している場合は、括弧を使用する方がはるかに良いでしょう。また、プログラマーがどの表現があいまいであるかを知らない場合は、括弧を使用することをお勧めします。一方、コンパイラの動作を変更することは危険ですが、少なくとも動作が変更された場合にはエラーをスローします。コンパイラーがエラーをスローしなかったが、別の方法でコンパイルを開始していた場合、それはさらに悪かったでしょう。このエラーは、気付かないバグからあなたを守りました。
LarsH

18

はい、「and」と「or」が混在している場合。

また、()論理的に1つのチェックを行うことをお勧めします。

最良の方法は、適切な名前の述語関数を使用し、ほとんどのチェックと条件をそこに追い出し、単純で読みやすい場合はそのままにしておくことです。


6
a AND b確かに、おそらくより説明的な名前を持つ関数または事前に計算されたブーレン値に置き換える必要がある可能性が非常に高いです。
ジェフブリッジマン

14

括弧は意味的に冗長であるため、コンパイラーは気にしませんが、それは赤いニシンです-本当の懸念はプログラマーの可読性と理解です。

ここで急進的な立場を取り、の括弧に心のこもった「いいえ」を与えa AND b OR c AND dます。すべてのプログラマは、ブール式での優先順位が行くその心で知っておくべき、NOT> AND> ORばかり思い出すように、私の親愛なるおばさんサリーを許しなさい代数的表現のために。冗長な句読点は、ほとんどの場合コードに視覚的な混乱を追加しますが、プログラマの可読性には利点がありません。

また、論理式および代数式で常に括弧を使用する場合は、「ここでトリッキーなことが起こっている-気をつけてください!」のマーカーとしてそれらを使用する機能を放棄します。つまり、デフォルトの優先順位をオーバーライドし、乗算の前に、またはANDの前にORを追加で評価したい場合、括弧は次のプログラマーにとって良い赤い旗です。それらが必要でないときにそれらを使いすぎると、あなたはオオカミを叫んだ少年になります。

私は、標準的なイディオムのようなより複雑なものC、このようなポインタ式として、代数(ブール値かどうか)の領域外に何のための例外になるだろう*p++か、p = p->nextおそらくが逆参照を保持し、算術まっすぐにするために括弧されるべきです。そしてもちろん、これは、式にポーランド語表記の何らかの形式を使用するLisp、Forth、Smalltalkなどの言語には当てはまりません。しかし、主流の言語の大半では、論理的および算術的な優先順位は完全に標準化されています。


1
+1、わかりやすくするための括弧は問題ありませんが、ANDvs ORはかなり基本的なケースであり、チームの他の開発者に知ってもらいたいと思います。私は時々、「明確にするために括弧を使用する」ことは実際には「括弧を使用するので、優先順位を学ぶために煩わされる必要がない」と心配しています。
ティムグッドマン

1
私は定期的に動作するすべての言語では、それはだ.member単項演算子の前に、二項演算子の前に単項、*そして/+-<>し、==前に&&前に||割り当ての前に。これらのルールは、演算子の通常の使用方法に関する「常識」に一致するため(たとえば、==優先順位を上げ+たり1 + 1 == 2、動作を停止したりしない)、優先順位の質問の95%をカバーするため、覚えやすい。
ティムグッドマン

4
@TimGoodmanはい、まったくそのとおりです。ここの他のレスポンダーは、それを黒か白の質問だと思うようです-常に括弧を使用し、例外なく、あなたのズボンの座席をrules意的で不可能なルールの海を介して不注意に飛ばし、コードが沸騰します見つけにくいバグがある可能性があります。(混合メタファーは非常に意図的です。)明らかに正しい方法は節度です。コードの明快さは重要ですが、ツールをよく知っていることも重要です。また、チームメイトからプログラミングとCSの原則について一定の最低限の理解を期待できるはずです。
dodgethesteamroller

8

私の考えでは:

はい長所:

  • 操作の順序は明示的です。
  • 操作の順序を理解していない将来の開発者からあなたを守ります。

はい短所:

  • コードが乱雑で読みにくいことがあります

NO賛否ません。

NO短所ません。

  • 操作の順序は暗黙的です
  • 開発者は、操作の順序を十分に理解していないと、コードの保守性が低下します。

よく言われますが、「混乱を招き、コードを読みにくくする可能性があります」とはかなり主観的だと思います。
FrustratedWithFormsDesigner

2
コードのセマンティクスを明示的にすると、読みにくくなりますか?
メイソンウィーラー

1
私はあなたの「はい短所」を疑問視する他の人に同意します。それはほとんど常に反対だと思います。

@Frustrated逆の主張と同じくらい主観的。意味ではなく、本当に。測定するのは難しい。
コンラッドルドルフ

1
@MasonWheeler:多くの場合、明示的な括弧は非常に重要であることに同意しますが、セマンティクスを明示的にすることで、どのように乗り越えられるかを見ることができます。形式と優先順位はおなじみのものであり、標準なので、3 * a^2 + 2 * b^2読みやすいと思います(3 * (a^2)) + (2 * (b^2))。同様に、コードのセマンティクスをより明確にするために、関数とマクロ(またはコンパイラー!)の使用を(極端に)禁止することもできます。明らかにそれを支持しているわけではありませんが、物事を明確にすることに制限(バランス)が必要な理由に関するあなたの質問に答えたいと思っています。
LarsH

3

余分な括弧を含めることに賛成または反対する議論はありますか?実用的な経験は、読みやすさのためにそれらを含める価値があることを示唆していますか?それとも、開発者が実際に座って自分の言語の基本に自信を持つ必要があるという兆候ですか?

他の誰も私のコードを再度見る必要がなければ、私は気にしません。

しかし、私の経験から:

  • 私は時々コードをもう一度見ます(それを書いてから数年後)
  • 他の人は時々私のコードを見る
    • または、拡張/修正する必要があります!
  • 私も他の人も、それを書いているときに私が思っていたことを正確に覚えていない
  • 不可解な「文字数を最小化する」コードを書くと読みにくくなる

私はほとんど常にこれを行います。なぜなら、私はすぐに読む能力を信頼し、他の何よりも括弧で多くの小さな間違いを犯さないためです。

あなたの場合、私はほぼ確実に次のようなことをします:

if (a AND b) then ab = true
if (c AND d) then cd = true
If (ab OR cd) Then ...

はい、それはより多くのコードです。はい、代わりに派手なブール演算子を実行できます。いいえ、1年以上先のコードをスキミングして派手なブール演算子を読み間違える可能性はありません。AND / ORの優先順位が異なる言語でコードを記述していて、これを修正するためにジャンプする必要がある場合はどうなりますか?「ああ、この賢いささいなことを思い出します。去年書いたときにカッコを入れる必要はありませんでした。今はいいことを覚えています!」それが起こった場合(または、さらに悪いことに、この賢さを知らなかった、または "fix asap"タイプの状況に陥った他の誰か)?

()で区切ると、後で簡単に理解して理解できるようになります。


7
あなたがそれをするつもりなら、なぜab = a AND bですか?
エリック

1
abそうでない場合は、おそらく変更されないままになるためa AND bです。
アルマリ

3

一般的なケース

C#では、乗算と除算が加算と減算よりも優先されます。

それでも、コードベース全体に共通のスタイルを強制するツールであるStyleCopには、十分に明確ではないコードによるバグのリスクを軽減するという追加の目標があり、ルールSA1407があります。このルールは、次のようなコードで警告を生成します。

var a = 1 + 2 * 3;

結果が7であり9、ではないことは明らかですが、StyleCopは括弧を付けることを提案しています:

var a = 1 + (2 * 3);

あなたの特定のケース

特定のケースでは、使用する特定の言語のORと比較してANDの優先順位があります。

これは、すべての言語の動作ではありません。他の多くの人は、ANDとORを等しく扱います。

主にC#で作業する開発者として、最初にあなたの質問を見て、あなたが書いたものを読まずにコードを読んだとき、私の最初の誘惑は2つの式が同じではないとコメントすることでした。うまくいけば、コメントする前に質問全体を読んだことがあります。

この特殊性と、一部の開発者がANDとORの優先順位が同じであると信じるリスクがあるため、括弧を追加することがさらに重要になります。

あなたが賢いことを示す目的でコードを書かないでください。言語のあらゆる側面に精通していない人も含めて、読みやすさを目標にコードを記述してください。


1
「これは非常にまれです」:Stroustrup2013によると、C ++ 11はANDとORの優先順位が異なるようです(p。257)。Pythonについても同じ:docs.python.org/2/reference/expressions.html
ダーク

10
Re:「私が知っているすべての言語は、ANDとORを同等に扱います」:それが真実だとは思えません。それ本当なら、あなたは10の最も人気のある言語(C、Java、C ++、PHP、JavaScript、Python、C#、Perl、SQL、Ruby)のどれも知ら、コメントする立場にない「非常に珍しい」は言うまでもなく、「珍しい」とは何か。
-ruakh

1
ruakhに同意し、C ++ 11、python、matlab、およびjavaについて調べました。
ダーク

3
ANDとORが二項演算子であり、ANDをORよりも優先順位が高いものとして扱わない言語は、作者がコンピューターサイエンスの熱狂者である脳損傷を受けたがらくたです。これは、ロジック表記に由来します。こんにちは、「製品の合計」は何の意味もありませんか?ANDには乗算(因子の並置)を使用し、ORには+記号を使用するブール表記もあります。
カズ

3
@ruakhあなたはちょうど私のために私のポイントを作りました。少数の病理学的エッジケースがあるからといって、標準のブール優先順位を学んで、他の方法で証明されるまでそれが成り立つと仮定すべきではないという意味ではありません。ここでは、arbitrary意的な設計決定については話していません。ブール代数はコンピューターよりずっと前に発明されました。また、あなたが話しているPascalの仕様を見せてください。ここここでは、ORの前にANDを示します。
-dodgethesteamroller

1

誰もが言ったように、式を読みやすくするたびに括弧を使用します。ただし、式が複雑な場合は、部分式に新しい関数導入することをお勧めします。


0

それとも、開発者が実際に座って自分の言語の基本に自信を持つ必要があるという兆候ですか?

単数形で厳密に言語を使用する場合は、おそらく。さて、古いものから最新のものまで、コンパイルからスクリプト作成からSQL、先月発明したDSLまで、あなたが知っているすべての言語を使いましょう。

見ずに、これらの各言語の正確な優先規則を覚えていますか?


1
また、上記の@Cape Cod Gunnyが述べたように、たとえあなたが言語の寒さを知っていると思っていても、コンパイラ/ランタイムはあなたの下で変わるかもしれません。
ヨルダン

0

「必要でない場合でも、論理ステートメントで括弧を使用する必要があります。」

はい、2人が役に立つと思うからです。

  • 次のプログラマーは、知識、能力、またはスタイルが異なる場合があります

  • 後日このコードに戻る未来のあなた!


-1

複雑な条件式は「ブール代数」であり、代数とまったく同じように見えるようにいくつかの方法で記述します。代数には必ず括弧を使用しますよね。

本当に便利なルールは否定ルールです:

!(A || B) <=> !A && !B
!(A && B) <=> !A || !B

または、少し明確な形式で:

!(A + B) <=> !A * !B
!(A * B) <=> !A + !B

次のように書かれたとき、それは本当に明らかに代数です

-1*(A + B) = -A + -B
-1*(A * B) = -A * -B

しかし、代数の単純化と拡張の考え方を適用することもできます。

(A && B) || (C && D) => 
((A && B) || C) && ((A && B) || D) => 
(AC && BC) && (AD && BD) =>
AC && BC && AD && BD

ただし、コードでは次のように記述する必要があります。

(A||C) && (B||C) && (A||D) && (B||D)

または、少し明確な形式で:

(A + B) * (C + D) => 
((A + B) * C) + ((A + B) * D) => 
(AC + BC) + (AD + BD) =>
AC + BC + AD + BD

基本的に、条件式はまだ単なる代数式であり、括弧を明確に使用することで、「この式を単純化または拡張する」という古い概念を含め、すでに知っているさまざまな代数ルールをより簡単に式に適用できます。


2
あなたが実際に質問に答えているかどうかはわかりません。あなたは必ずしも真実ではないという仮定で答えを導いているからです。代数に括弧を使用しますか?いつもではありません。それが読みやすさを助けるなら、確かに、しかし他の人はすでにここでそれを表明しています。また、数学代数を他の形式に拡張することは、プログラミングと正確に1対1で対応していません。いくつかの文字列値のステータスをチェックしている場合はどうでしょうか。
デレク

対応するブール代数が括弧を保証するほど複雑な場合、条件式はおそらく括弧を使用する必要があります。括弧を正当化しないほど単純な場合は、必要がないか、そうでないかのどちらかです。いずれにせよ、あなたが数学的な表現であると考えると、おそらく問題が明らかになります。
ナルファネーター

上記の私の例では、2つと4つのブール値を使用しています。2つ以上の文字列値のステータスを確認している場合、マッピングされます。各チェックは1つのブール変数に対応しています。そのチェックが整数であるか文字列であるかに関係なく; 文字列、配列またはハッシュの包含。複雑な表現自体...関係ありません。重要なのは、式に複数のtrue / falseの測定値があることです。
ナルファネーター

2
ちょうどつべこべが、中!(A + B) <=> !A + !Bおよび-1*(A + B) = -A + -Bオペレータは以下からひっくり返されていないはず+*第二の発現に?
ジェフブリッジマン

-1

たとえそれがオプションであっても、括弧を使用します。それは、コードを作成する人とそのコードを見る準備ができている人にとって、すべての人にとってよりよく理解するのに役立つからです。あなたの場合、ブール演算子でさえも最初はうまくいくかもしれませんが、すべての場合に役立つとは言えません。だから私はそれを必要とするかもしれない任意の条件で、またはオプションでユーザー括弧を好む。


-1

はい。コードがより明確になると思われる場合は、どのような場合でも使用する必要があります。コード内のコメントを読まなくても他の人が理解できるように、コードは十分に明確でなければなりません。したがって、括弧と中括弧を使用することをお勧めします。また、それはあなたの会社/チームの特定の実践に依存するかもしれないことを覚えておいてください。1つのアプローチを維持し、混在させないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.