Swift-style-guide: 括弧を任意に使用すると、不要な括弧を省略できなくなります

作成日 2017年06月14日  ·  6コメント  ·  ソース: raywenderlich/swift-style-guide

私たちは最近、このスタイルガイドを採用することを決定しましたが、次のステートメントは私たちにいくつかの頭痛の種を引き起こしました:

より大きな式では、オプションの括弧によってコードがより明確に読み取られる場合があります。

正確に言うと、_より大きな式_は非常に主観的であり、条件文を括弧で囲むことに慣れている開発者は、括弧を使用すると読みやすさが向上すると主張します。 ミニマリストとして、条件文の意味を変えないのであれば、括弧の使用には反対します。

何かご意見は?

最も参考になるコメント

@designatednerdに同意します。 個人的には、式を括弧で囲むことも好きです。 私もミニマリストですが、コードは読みやすく、わかりやすいものでなければならないと思います。 それ以外の場合、コンパイラは実際には気にしません。 私の見方では、 =後に、たとえばlet thing = fooような単純な割り当てが表示されることを期待しています。 ただし、その後の括弧は、割り当てが後で、おそらく行の終わりで発生するという視覚的な合図です。

let thing = ( /* some short or long logic here, skip it */ ) ? foo : bar

全てのコメント6件

それらが役立つと私が見た多くの場所は、等価性チェックが単一のブール値として使用されている場所を明確にすることです。

let thing = thingA == thingB
// vs. 
let thing = (thingA == thingB)

それがことが明らかに存在します操作の順序thing 「の値を持つことになりますブールがあるがあるthingAに等しいthingBが、それはして視覚的に解析するために多くの時間がかかります2番目よりも最初のオプション。

これは複合ステートメントでも役立ちますが、操作の順序も明確にする必要がある場合があります。

if thingC && (thingD || thingE) { ...

基本的には、走査性能についてはほとんどです:あなたはそれを読んで、それはパースに2つ目の長いも、あなたを取る場合、古い実際に素早くを取得しています。 そして、ジュニア開発者が何が起こっているのかを推論するのにはるかに長い時間がかかる場合、それは災害への扉を開く可能性があります。

@designatednerdに同意します。 個人的には、式を括弧で囲むことも好きです。 私もミニマリストですが、コードは読みやすく、わかりやすいものでなければならないと思います。 それ以外の場合、コンパイラは実際には気にしません。 私の見方では、 =後に、たとえばlet thing = fooような単純な割り当てが表示されることを期待しています。 ただし、その後の括弧は、割り当てが後で、おそらく行の終わりで発生するという視覚的な合図です。

let thing = ( /* some short or long logic here, skip it */ ) ? foo : bar

@ samkim102私があなたの質問を正しく読んだ場合、あなたは他のコメントが扱ったケースについて質問しているのではなく、代わりに、 ifステートメントの条件の周りの親の使用について質問しています。

その場合は、その場合に親が使用されるべきではないことをより明確に述べる方法を理解するのを手伝ってください。 ガイドの現在の文言は私には明白に思えます。

観察:ルールは、明確さを促進する場合にのみ括弧を使用するように変更できます。 私は、元のガイドラインが次のことを防ぐためにそこに置かれたと信じています。

// go for a Sunday drive
if (day.isSunday) {
   vehicle.drive()
}

一方、関係する他の演算子の優先順位を知っているために括弧を省略している場合は、おそらく自分の利益のために賢すぎます。

問題は、私が理解しているように、すべての場合に明確にするために親が必要であると考える人がいるように見えることです。 明らかに、これはifおよびswitchステートメントのほとんどの場合には当てはまりません。 他のコメンテーターが言及しているように、代入ステートメントでの使用法は、より暗い沼です。 「明快さを促進する」は主観的な基準であり、ここでの状況を助けていないようです。

来週、原作者からの連絡がない場合は、活動がないため閉鎖します。

応答がないため閉鎖されました。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

sima-11 picture sima-11  ·  5コメント

rayfix picture rayfix  ·  3コメント

WingYn picture WingYn  ·  15コメント

samkim102 picture samkim102  ·  4コメント

designatednerd picture designatednerd  ·  22コメント