概要
コードを読む際、大きな数値リテラルは読み間違いやすく、バグの温床になる。
たとえば 1000000
や 86400000
のようなリテラルは、ぱっと見て意味が分かりにくい。
このような場面において、視認性を飛躍的に高めるテクニックが、アンダースコアによる区切りだ。
対象環境
言語: JavaScript / TypeScript / Python / Kotlin / Swift ほか多数
問題提起
次のようなコードを見たとき、直感的に値を理解できるだろうか?
const TIMEOUT = 86400000; // ← これ何時間?
解決手段
アンダースコアで区切ると、圧倒的に可読性が上がる。
const TIMEOUT = 86_400_000; // ← 24時間(ミリ秒)
MAX_LIMIT = 1_000_000 # ← 100万
解説
JavaScript / TypeScript
ES2021からサポート。アンダースコアは無視されるため、実行時には数値そのものとして扱われる。
console.log(1_000_000 === 1000000); // true
Python
Python 3.6 以降で正式サポート。
print(1_000_000 == 1000000) # True
Swift / Kotlin など
これらの言語でも同様に使用可能。数値リテラルを視覚的に整理する文化が根付いている。
応用:時間や容量の定義に使う
const ONE_MINUTE = 60_000; // ミリ秒
const ONE_HOUR = 3_600_000; // ミリ秒
const ONE_GB = 1_073_741_824; // バイト (1024^3)
ONE_KB = 1_024
ONE_MB = 1_048_576 # 1024 * 1024
結語
可読性は、コードの信頼性に直結する。
特に定数やハードコーディングが避けられない場面では、数字の見た目が理解度を左右する。
アンダースコア区切りは、誰もが一瞬で取り入れられるテクニックでありながら、
プロフェッショナルなコードに不可欠な要素だ。
「1_000_000」は「1000000」と等しい。
だが、伝わり方はまったく違う。