CONSTANT_CASE 轉換器
將任何短語轉換為 CONSTANT_CASE(也稱為 SCREAMING_SNAKE_CASE)——所有大寫字母均由下劃線連接。環境變數和常數的標準。
max retry attempts → MAX_RETRY_ATTEMPTS
將任何短語轉換為 CONSTANT_CASE(也稱為 SCREAMING_SNAKE_CASE)——所有大寫字母均由下劃線連接。環境變數和常數的標準。
max retry attempts → MAX_RETRY_ATTEMPTS
CONSTANT_CASE(也廣泛稱為 SCREAMING_SNAKE_CASE 或 UPPER_SNAKE_CASE)是單字大寫並用底線連接的約定。它是環境變數、命名常數、C/C++ 巨集和(歷史上)列舉成員的通用樣式。
視覺響度(全部大寫加上分隔符號)向讀者表明該值是特殊的:全域作用域、不可變或編譯時。大多數語言不強制執行該約定,但每個團隊都會採用它,因為它使常數一目瞭然。
DATABASE_URL, STRIPE_SECRET_KEY, NODE_ENV。 POSIX env-var 名稱通常為 CONSTANT_CASE;許多 shell 完全拒絕小寫的環境變數名稱。
MAX_RETRIES = 3, DEFAULT_TIMEOUT_MS = 5000, PI = 3.14159。根據 Python 的 PEP 8、JavaScript 約定和大多數 C/C++ 風格指南,頂級常數是 CONSTANT_CASE。
#define MAX_BUFFER 4096 — 預處理器巨集是 CONSTANT_CASE,以使它們在視覺上與常規標識符不同(因為它們在編譯時被替換,而不是像普通代碼一樣被評估)。
某些設定格式(尤其是較舊的 Unix 工具和 .env 檔案)使用 CONSTANT_CASE 鍵: LOG_LEVEL=debug, HTTP_PORT=8080.
較舊的 C++ 和 Java 程式碼對枚舉成員使用 CONSTANT_CASE (OrderStatus.PENDING);現代風格指南更喜歡 PascalCase 對於枚舉值。
該工具首先將任何非字母數字分隔符號(空格、連字符、點、底線等)拆分為單詞,從而將輸入文字轉換為 CONSTANT_CASE。然後使用 Unicode 大寫映射(涵蓋 ASCII 和帶有重音的拉丁語)將每個單字轉換為大寫。最後,單字用一條底線連接起來 _。此演算法保留數字,但去除前導/尾隨分隔符號。例如, 'v2.0-測試版' 變成 V2_0_BETA。連續的分隔符號被折疊成一個底線。此轉換與區域設定無關,透過標準處理所有字母 toUpperCase JavaScript 方法。
雖然 CONSTANT_CASE 很簡單,但開發人員經常使用命令列或程式設計工具來達到相同的效果。
| 這個工具 | sed命令 | Python 單行程式碼 | |
|---|---|---|---|
| 使用者介面簡單 | 基於網絡,無需安裝 | 需要終端,基本 Unix | 需要安裝Python |
| 即時預覽 | 是的,即時轉換 | 不行,編輯後必須重新運行 | 否,每次手動執行 |
| 處理複雜輸入 | 將所有非字母數字進行拆分 | 依賴正規表示式,可以調整 | 使用正規表示式靈活,但需要編碼 |
| 批量處理 | 僅單弦 | 可以逐行處理文件 | 可以用腳本處理文件 |
CONSTANT_CASE,通常稱為 UPPER_SNAKE_CASE 或 SCREAMING_SNAKE_CASE,隨早期程式語言(如 C)一起出現,其中預處理器宏(例如, #define MAX_SIZE 100) 通常全部大寫並帶有下劃線。 Unix shell 也採用了這種風格的環境變數(例如, PATH, HOME)。術語「SCREAMING_SNAKE_CASE」後來在 Ruby 和 Python 社羣中流行起來,用來描述這種視覺上響亮的命名約定。
是的——它們是同義詞。正式風格指南中首選「CONSTANT_CASE」; “SCREAMING_SNAKE_CASE”是程式設計師在對話中實際使用的更容易記住的名稱。兩者都指相同的輸出。
對於看起來恆定但實際上可以重新分配的值(let x = 1 在 JavaScript 中),請改用該語言的變數約定。為真正不可變的值保留 CONSTANT_CASE:文字常數、環境變數名稱和編譯時宏。
歷史:早期的 Unix shell 為 shell 局部變數保留小寫名稱,為導出(環境)變數保留大寫名稱。即使在技術區別變得模糊之後,這一慣例仍然存在。
POSIX shell 允許它們,但大多數工具(Docker、Kubernetes、CI 系統、十二因素應用程式配置)都假定要大寫。堅持使用 CONSTANT_CASE 以避免邊緣情況錯誤。