いつもどこかでデスマーチ♪

不定期に、私の日常を書き込みしていきます。

switch の case に対して 中かっこ{} を利用すべきか…

2022年01月06日 10時49分29秒 | メモ
事の発端:
 久しぶりにJavaScript(Kintone) の開発(ルネサスやったりWPFやったり浅く広くしすぎじゃね?給料上げてくれよ)をやり始めたのですが、初のVSCode で環境構築を実施!
(Kintone のサイトに環境構築手順がほぼ乗ってるから親切で楽だわー)
で行った所、ESLint の「ES2017」コードチェックをするように対応してみた。
その際、下記コードの「let pLeft = dataPanelWidth - rightPanelWidth;」でエラーが発生!

 問題のコード:
switch (argVal) {
    case 'end':
        let pLeft = dataPanelWidth - rightPanelWidth;
        element.scrollNavigation.panelMargin = pLeft * -1;
        $dataPanel.animate({'left': '-' + pLeft}, 'fast', shift);
        break;
}


 原因と修正:
ESLint は優秀で、エラー原因と修正方法のURLを示してくれる。
https://eslint.org/docs/rules/no-case-declarations

内容を読む限り、「switch~case 内に「let/const/function/class」を利用する時は、中かっこを追加せよ」って事らしい。


**************事の発端終わり**************

って事で今まで別言語でも、case 内で tmp 変数が何度も使えずに悲しんだ事はあった。
switch 文の前に変数宣言をまとめて記載して…ってことが何とかあります。
(変数使うならメソッド化しろよ。というのが本音だが、ちょっとしたのだと面倒だよね…)

で、上記の話に戻る。
case後を中かっこでくくる事で、上記の問題は解決する。
そうすると、エラーや変数宣言と処理が離れる問題も解決する。

あれ?今までなんで中かっこ無かったんだろうか…?と思うようになってきた。
対応できる全言語でこうして欲しい気もするが…ん~どうなんだろう
ただ、今までやってこなかったので追加するのは面倒だ…
フォーマッタでcase処理を中かっこでくくる対応は無い物か…

問題点:
case をインデントして居なかった人はインデントが1つ増える事になる。
僕はcaseをインデントしているので何も違和感は無かった…
(フォーマッタが対応してくれれば1個だけじゃね)

少数派だろうけど、今後こっちが主流にならないかなぁ…

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Prism.Forms で Xamarin.Form... | トップ | C# の Private なフィールド... »

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

メモ」カテゴリの最新記事