プログラミングにおける大文字・小文字のルールが分からない…
おはようございます。Takahideです。
アルファベットで名前を書くときって頭文字だけ大文字で残りは小文字ですよね。
こんなのは私でも分かります。いまどき小学生でも分かります。
でもプログラミングで変数名や関数名を見ていると、「API_URL」とか「getUserName」とか「UserService」とかとか…
大文字と小文字とアンダーバーが入り乱れているじゃありませんか。
きっと一定のルールに基づき記載しているのでしょうが、独学の私にはそれが分からない。
ということで本日はこの、「プログラミングにおける大文字・小文字のルール」を調べていきたいと思います。
- 変数や関数の命名規則がよくわからない
- プログラミングにおける大文字・小文字のルールを知りたい
それでは見ていきましょう。
よく聞く命名ルールの種類を整理してみる
どうやら調べてみると、大文字・小文字の命名ルールには以下の4種類があるようです。
- camelCase
- snake_case
- PascalCase
- UPPER_CASE
うんうん、大文字・小文字の組み合わせになっていますね。
私が分からなかったのがこれです。
これらは、「読みやすくするためのルール」のようです。
言語や文化ごとに好まれる書き方があり、それを知っておくことで、他人のコードが読みやすくなります。
camelCaseとは
「camelCase(キャメルケース)」は、複数の単語をつなげる際に、2語目以降の先頭を大文字にする命名ルールです。
最初の文字は小文字から始まるのが特徴で、ラクダのこぶのように途中が盛り上がって見えることからこの名前が付いたそうです。
- getUserName
- totalPrice
コードを書かない人からすると馴染みが無いのでオシャレですよね。
つい使ってしまいたくなります。
PascalCaseとは
「PascalCase(パスカルケース)」は、単語の区切りを大文字にする命名ルールです。
camelCaseとは、最初の文字も大文字から始まる点が違います。
- UserService
- OrderDetail
1970年代ごろに人気があったプログラミング言語「Pascal」において、この命名規則が一般的に使われていたため、この名前がついたようです。
snake_caseとは
「snake_case(スネークケース)」は、単語の区切りを「_」アンダースコアで表現する命名ルールです。
- get_user_name
- total_price
snake_caseの場合は、大文字・小文字の区切りが無く、すべて小文字で書かれることが多いようです。
単語が横に連なり、アンダースコアが蛇のように見えることからこの名前が付いています。
UPPER_CASEとは
「UPPER_CASE(アッパーケース)」は、すべて大文字で書き、単語の区切りにアンダースコアを使う命名ルールです。
- MAX_COUNT
- API_URL
これは、英語の「uppercase=大文字」が語源だそうです。
個人的にこの命名ルールは、小指でShiftキーを押し続けなければいけないので好きじゃないです。疲れます。
以上4つが主な命名ルールでした。
言語ごとの大文字・小文字の命名ルール
ここからは、プログラミング言語ごとにどの命名ルールで記載するのか?ということを見ていきます。
例えば、「Pythonだったらsnake_case」、「JavaScriptだったらcamelCase」とか…
そんな言語ごとの違いがあるのか?ということを調べたいわけです。
Python
- 変数・関数:snake_case
- クラス:PascalCase
- 定数:UPPER_CASE
このPythonの命名ルールは、公式スタイルガイドである「PEP8」に記載されているようです。
公式がそのようにおっしゃるならその通りに書くべきなんでしょうね。
Java
- 変数・メソッド:camelCase
- クラス:PascalCase
- 定数:UPPER_CASE
Javaの標準ライブラリ自体がこのルールに従って記載しているようです。
何か公式ドキュメントでそのように明記されているわけでは無いようですが、自然とこの書き方が当たり前として広まったみたいです。
JavaScript
- 変数・関数・メソッド:camelCase
- クラス:PascalCase
- 定数:UPPER_CASE
ブラウザAPIなどの仕様をまとめたドキュメントを見てみると、変数や関数では「camelCase」で記載するのが基本になっているようです。
Ruby
- 変数・メソッド:snake_case
- クラス:PascalCase
- 定数:UPPER_CASE
Rubyのスタイルガイドを見ると、この命名ルールに従って記載されているため、このルールが慣習となっているようです。
どうやらどの言語でも「クラス」「定数」は固定っぽい
さて、ここまで見ていただいた方なら気づいたでしょうか?
- クラス:PascalCase
- 定数:UPPER_CASE
この2つはどの言語でも固定されているということに。
そうなんです。
私はてっきり、言語ごとに異なるのかな?と思っていたのですが、どうやら使い方によって分かれているみたいですね。
「クラスならPascalCase」「定数ならUPPER_CASE」確かにこの方が、コードを読んでいる時にも理解がし易そうですね。
ただ、変数や関数・メソッドの命名においては、言語ごとに命名ルールが分かれているみたいなので注意してください。
まとめ
以上、「プログラミングにおける大文字・小文字のルール」でした。
- 命名ルールには、「camelCase」「snake_case」「PascalCase」「UPPER_CASE」の4種類
- 「クラス:PascalCase」「定数:UPPER_CASE」「変数・関数:言語により異なる」という特徴がある
お疲れさまでした。
