最近の条件演算子の書き方
◆ 最近の私のお気に入りな書き方
◆ if 文ぽいのは ? と : は行の最初
◆ case 文ぽいのは行の最初に : を書いて条件のあとに ? と true のときに値
◆ if 文ぽいのは ? と : は行の最初
◆ case 文ぽいのは行の最初に : を書いて条件のあとに ? と true のときに値
三項演算子ともいう ? と : です
とくにみやすいものではないのですけど if 文にするよりは見やすいのでけっこう多用してます
手続き的に「○○な場合はあれしてこれして ××な場合はそれやってー」 というときは if 文ですが 「○○なときは a を ××なときは b を x に代入する」というようなどっちか もしくはどれかをある変数に代入する なんていうときは 条件演算子のほうが綺麗で見やすいです
if 文で複数箇所で代入とか気持ち悪いですし JavaScript の let とかブロックスコープな場合は外側で宣言してとか面倒もあります
そんな条件演算子をどう書くのが綺麗で見やすいのかです
あれこれ変わっていますが最近はこれに落ちつています
? と : は行の最初に書きます
行末には持ってきません
行末は何も記号ないので統一してるほうが綺麗かなって
行末に ? や : あったら条件演算子と判断することもできますけど 普通はプログラムの構造はインデントで判断しますし 行の最初で判断できたほうがいいかなと思います
行の最初に ? があれば ここは true の場合の値ねー : だったら false の場合の値ねー と行の最初を見てわかりますし
ただ
みたいな 1 行に収まらないものがあるとちょっと見づらくなるのが困るところ
こうしてしまうときれいな気もするけど 行が多すぎて 逆に見づらいともとれます
それでも
これよりは見やすいですし ? と : は最初に持ってくる方がいいです
? は気に入らないですが 全体的にはすごく見やすくできたと思います
: から始まってインデント揃ってるところは気持ちいいですよね
最後は何も書かないより default みたいなその他全部とわかるように コメントで otherwise と書いてます
? は揃えるために書いてみましたがいらないかも
文中にコメントが入ることを嫌わないならオススメです
? が => とか | とか もうちょっとそれっぽい記号だったらなぁと思わずにいられません
ただ PHP だとカッコ必要できれいにならないんですよねー
とくにみやすいものではないのですけど if 文にするよりは見やすいのでけっこう多用してます
手続き的に「○○な場合はあれしてこれして ××な場合はそれやってー」 というときは if 文ですが 「○○なときは a を ××なときは b を x に代入する」というようなどっちか もしくはどれかをある変数に代入する なんていうときは 条件演算子のほうが綺麗で見やすいです
if 文で複数箇所で代入とか気持ち悪いですし JavaScript の let とかブロックスコープな場合は外側で宣言してとか面倒もあります
そんな条件演算子をどう書くのが綺麗で見やすいのかです
あれこれ変わっていますが最近はこれに落ちつています
if
var value = isTrue(flag)
? 1000
: 2000
var value = flag1
? flag2
? 1
: 2
: flag2
? 3
: 4
? 1000
: 2000
var value = flag1
? flag2
? 1
: 2
: flag2
? 3
: 4
? と : は行の最初に書きます
行末には持ってきません
行末は何も記号ないので統一してるほうが綺麗かなって
行末に ? や : あったら条件演算子と判断することもできますけど 普通はプログラムの構造はインデントで判断しますし 行の最初で判断できたほうがいいかなと思います
行の最初に ? があれば ここは true の場合の値ねー : だったら false の場合の値ねー と行の最初を見てわかりますし
ただ
var func = flag
? function(e){
return e + 1
}
: function(e){
return e - 1
}
? function(e){
return e + 1
}
: function(e){
return e - 1
}
みたいな 1 行に収まらないものがあるとちょっと見づらくなるのが困るところ
var func = flag
?
function(e){
return e + 1
}
:
function(e){
return e - 1
}
?
function(e){
return e + 1
}
:
function(e){
return e - 1
}
こうしてしまうときれいな気もするけど 行が多すぎて 逆に見づらいともとれます
それでも
var func = flag ?
function(e){
return e + 1
} :
function(e){
return e - 1
}
function(e){
return e + 1
} :
function(e){
return e - 1
}
これよりは見やすいですし ? と : は最初に持ってくる方がいいです
case
次は switch の case みたいなことするときvar value = name === "aaa" ? 1000
: name === "bbb" ? 2000
: name === "ccc" ? 2500
: name === "ddd" ? 3000
: name === "eee" ? 3200
: /* otherwise ? */ 0
: name === "bbb" ? 2000
: name === "ccc" ? 2500
: name === "ddd" ? 3000
: name === "eee" ? 3200
: /* otherwise ? */ 0
? は気に入らないですが 全体的にはすごく見やすくできたと思います
: から始まってインデント揃ってるところは気持ちいいですよね
最後は何も書かないより default みたいなその他全部とわかるように コメントで otherwise と書いてます
? は揃えるために書いてみましたがいらないかも
文中にコメントが入ることを嫌わないならオススメです
? が => とか | とか もうちょっとそれっぽい記号だったらなぁと思わずにいられません
ただ PHP だとカッコ必要できれいにならないんですよねー