(JavaScript や C 言語の系列等の、ブロックコメントを /* (´ε` ) */ で表す言語でのお話です)
「セクシー構文」という名称、既に使われているのですね。
先程検索してみて知りました。
申し訳ありませんが、世間?ネット?で現在使われているセクシー構文とは関係の無い内容です。
はじめまして。
数年ぶりにプログラミングを趣味として再開した、うらしま状態の中年です。
技術情報の知識が 10年くらい空いているので、別世界に転移してきた気分です。(異世界転移、しかし激弱体化・・・)
そんな訳で、昔からのローテクな観点からの投稿です。
今回は、コメントについて記します。
プログラムを書いている最中に、ちょっと試してみたい事って、ありますよね?
今書いているコードの一部を別の書き方を試してみたくなったり。
JavaScript で DOM を操作する関数をコーディング中、上手くいっているかを試すために、その関数を様々な引数で呼び出してみたり。
そんな時は、既に書いた部分をコメント化してその場に保存しながら、他のいろいろなチャレンジをしていくことになると思います。
していきますよね?
え? もっと高度な事をしていたりします?
・・・そんな高尚な方には縁の無い、泥臭いコメント化のテクニックをご紹介いたします。
まずは基本の、コメント による if 文です。
/**/
Master.batton(); // 素早く隠したいコード
/**/
はいっ!
こちらの商品の特徴はですね、行末の一文字でコメント化を制御できる点です。
1行めの行末の / にご注目下さい。
この一文字を書いたり消したりするとどうなるか? 想像してみてください。
前記の記述だと、1行めと 3行めの 2箇所に空のコメントが存在します。
そこから、/ をひとつ外すと、1行めから 3行めまで続くひとかたまりのブロックコメントに早替わりです。
お分かり頂けましたか?
ただこれだけで、コメントにしたり、コメントを外したりができます。
ここで注目して頂きたいのは、既にコメント化していたブロックを「ちょっとココら辺を有効に戻して〜」とコメントを解除したくなった時の、作業量です。
これがですね〜〜。
わずかに、スラッシュを付け加えるだけ! 付け加えるだけです!!
更に!
「よし、もっかいコメント化して〜」と思った時には、わずか BS キーをひと押しするだけ!!
/ 記号の後ろを選択してから、たった、ひと押し! たったのひと押し!
/ 記号をひと文字消すだけ!
どうです? この最強のコストパフォーマンス。
お買い得ですよね〜〜。
え? マウスで範囲選択して、キーバインドでコメント領域を反転させれば一瞬で済む?
あー、、、まあ、その、ね?
そういった素敵なエディタを使ってない人とか、範囲選択ですら面倒なスマートフォンなんかでコーディングしている人もいるのですよ。私のような・・・。
はい。気を取り直して解説を続けます。
この書き方は、タッチまたはクリックが楽なのです。
1行コメントの // を加える時、消す時、を思い出してください。
画面上の x - y 軸でピンポイントに一点を選択してから、// を書いたり消したりします。
これに対して、行末の一文字の / を選択する時は、行末以降の行全体のどこをタッチしても良いのです。
適当に 1行のどこかをタッチするだけで良いのです。
「ええ!? あの、ミスタッチで違う文字の後ろにカーソルがいってしまう、あの苦痛から解放されるんですかー?」
「はいっ。実はそうなんですよー。もうこれからは、一文字単位のズレで苦しむことはありませんっ!」
そんなお買い得テクニックです。
この応用で、ブロックコメントを使って if-else や switch も一文字操作で実現できます。
「今なら、if-else も付いてきます! ええーい! 更に更に、switch までつけちゃいましょう!」
どうすれば実現できるのか、考えて見てください。
なんて書いて終わると、興味をもってくださった方にも石を投げられそうなので、ちゃんとご紹介いたします。
自力で考えつく快感が欲しい人だけ、じっくり考えてみてください。
ですがそれよりも大切なのは、名前です。
この書き方に名前が欲しい!
というか、既に名前がついているのでしょうか?
この後にご紹介する if-else や switch まで含めると、一時的な使い捨てコードとしては、わりと有用なテクニックなのですが。
私は特に、誰からも教わった訳でもなく、ウェブで見かけたことも無いので、呼び方が分かりません。
ご存知の方、教えて下さい。
ホント、名前が無いと困るのですよね。
使っていない期間が長くなるとあっさり忘れて、なかなか思い出せなくなるんです。
数年ぶりに使おうとして 「あ、ここは確かアレで楽できたはず。アレ使えば・・・、あれ? アレってあれ? どうやるんだったっけ?」 なんてことになってしまいました。
「これが○○というやつか、なんて恐ろしい・・・」
という訳で、お願いです。
これに、名前を考えて下さい。
忘れられなくなるような押しの強い名前を希望です!
私案:
/ を素敵な脚に見立てて、/ を付けたり消したりを、セクシーなお姉さんが脚をパカパカ開いたり閉じたりしていると想像するのです。それによって隠していた部分が見えたり見えなかったり。
ちらっ ちらっ
そんな所から、セクシー構文と名付けるのは、どうでしょうか?
片仮名でセクシーステートメン!
何かまともな良い案があれば、是非、ご教示ください。
さて、そろそろ、残りの if-else と switch をご紹介いたします。
セクシー if 構文はこの書き方でした。
パカッ パカッ。 ちらっ ちらっ。
if : /**/ A /**/
こちらが見えればアチラが隠れ、あちらを見つめれば此方が隠れ。ああ、もどかしい! な、セクシー if-else 構文はこちら。
if-else : /**/ A /*/ B /**/
アチラもコチラも、ああ! もう見えたり見えなかったり、なにコレ、もどかしい! な、セクシー switch 構文はこちら。
switch : /** A /** B /** C /** D /**/
あえて、分かりやすくしてくれるコード記述じゃなく、ベタに 1行で書きました。
こういった初見では分からないものを、ちょっと考えて悩んだ末に、ハッ! と理解する、その瞬間って気持ちいいですよね。
ええと、確か、アハン体験とかいった名前がついてませんでしたっけ?
だから、詳しい解説はいたしません。
よろしければ、どういう動きをするのか考えて見てください。
自力で理解してみてください。
そして、これを読んでくださった何人かでも、アハンに気持ちよくなって頂ければ嬉しいです。
「そんな事してられない!」 という気の短い方も、ご安心ください。
以下の記述をコピーして、ご自分のエディタで試して頂けます。
コメントブロックが色分けされるエディタを使って、素早くコメント化を ON/OFF できる喜びを体感してください。
function studyHours(){
/**/
Mastur.bation(); // 素早く隠したいコード
/*/
Moti.vation(); // 見せたいコード
/**/
}
let solo = new You();
/**
solo.play( "movie" ); // テストケース 1
/**
solo.play( "comic" ); // テストケース 2
/**
solo.play( "toy" ); // テストケース 3
/**/
solo.play( "forbidden" ); // テスト中
/**/
room.dispatchEvent(new Event( "mama-knocked" ));
ちなみに、コメント付きで記述するのでしたら、こんな風に書くと、追加・削除をする / の位置とコメントが同じ行で近くなるので、把握や編集が容易になります。
/* 布団を被る *
solo.style.visibility = "hidden";
/* クローゼットに隠れる *
solo.style.display = "none";
/* 混乱する */
solo.style.overflow = "scroll";
/* 脱出する *
solo.scrollBy( 999999, 999999 ); // しかし回り込まれた
/**/
以上、セクシー構文(仮) の解説でした。
ここまでお付き合い頂き、ありがとうございます。
最近の私の使い道としては、
CSS の width に max-content や min-content が追加されていたのを知り 「何これ!? 素敵な予感?」 と、if-else 文で切り替えながら、max-width や min-width に display 等との調和を試してみたり、
DOM 操作や CSS の修整の際に、ブラウザでの読み込みと同時に該当の場面に強制的に遷移させるテスト用のコードを切り替えたり、
といった利用をしています。
皆様にとっても、有効な利用方法があれば良いのですが。
なお、他の種類のブロックコメントでも同じ事が可能です。
こうして、まとめてみると、switch というよりは multiple select と呼んだ方がしっくりくるような気がしてきました。
でも、プログラムコードとしては、if に合わせて switch と呼ぶ方が気持ちいいのですよね。
どう思います?