2021年10月17日日曜日

文字列にはシングルクォートを使うべきかダブルクォートを使うべきか

文字列はシングルクォートとダブルクォートのどちらで囲うべきか、ときどきコーディングスタイル論争に上がりますね。もちろん、JavaScriptとかPythonのようにどっちを使っても文法上問題ない言語に限ります。CやJavaでは必ずダブルクォートを使わなければいけません。

今回のテーマは、そんな今更感あふれる話題です。

Googleの場合

Googleのスタイルガイドラインではシングルクォートを使えよと書いてあるので、とりあえずそれに従っておけば文句を言われることもないだろうとシングルクォートを使っている人も多いんじゃないかと思います。

では、そもそもGoogleはなぜシングルクォートを勧めているのでしょうか。これに対する明確な答えはわかりませんが、こういうところを見ると「USキーボードではシングルクォートのほうが入力しやすい(Shiftキーを押す必要がない)」というのも理由の一つかもしれません。あるいは単にどっちでもいいからコインを投げて決めただけかもしれませんが。

Googleに倣っているところが多いのか、(観測できる範囲だと)世間一般ではシングルクォートが多いように見えます。

個人的な話

そんな世間の流れに逆らって、個人的にはダブルクォートのほうが好みです。別に世間に逆らう俺様カコイイというわけではなく、主に以下の3つの理由です。

  • 日本語キーボードではダブルクォートのほうが押しやすい(Shift+2のほうがShift+7より押しやすくないですか?)
  • JSONでは文字列はダブルクォートで囲わなければいけないので、統一する意味ではダブルクォートのほうがいい
  • C, C++, Javaのような言語から来た人はシングルクォート文字列に違和感がある

最後については、文字と文字列が明確に分けられている言語は文字列にダブルクォートしか使えないことが多いです。最近ではRustなんかもそうですね。Goはシングルクォートをrune型として扱いますが、これも事実上の文字型のようなものです。

逆に、文字列にシングルクォートしか使えない言語はあまりないですね。Pascalとかの一部の言語だけのような気がします。

というわけで、個人的にはダブルクォートを使っています。とは言っても絶対ダブルクォートじゃないとイヤという固い信念があるわけでもないのでチーム開発するときは規約に合わせますけどね。

あ、文字列内にダブルクォートを入れなきゃいかん場合とか変数を埋め込みたい場合なんかはバッククォートのテンプレートリテラルを使いたいです。これはGoogleと同意見。

0 件のコメント:

コメントを投稿