Snake_case 轉換器
將任何短語轉換為snake_case——全部小寫,單字由下劃線連接。 Python、Ruby 和大多數 SQL 列的預設識別碼樣式。
User Profile Background Color → user_profile_background_color
將任何短語轉換為snake_case——全部小寫,單字由下劃線連接。 Python、Ruby 和大多數 SQL 列的預設識別碼樣式。
User Profile Background Color → user_profile_background_color
Snake_case 是一種命名約定,其中單字以小寫形式書寫並用底線連接。它是 Python(根據 PEP 8)和 Ruby 的官方識別符樣式,並且是 PostgreSQL、MySQL 和 SQLite 中最常見的 SQL 列名稱樣式。
相比於 camelCase、snake_case 更容易一目瞭然,因為下劃線充當視覺分隔符,但打字速度稍慢,因為每個單字中斷都需要專門的擊鍵。語言和生態系統會選擇其中一個並堅持下去以保持一致性。
根據 PEP 8,每個 Python 變數、函數參數和方法名稱都應該是 Snake_case: user_id, compute_tax_rate, read_from_file。類別名稱是 PascalCase;常數是 CONSTANT_CASE.
Ruby 方法、變數和Rails 模型屬性都是snake_case。資料庫列會自動轉換為 ActiveRecord 中的 Snake_case 屬性名稱,因此任何偏差都會破壞魔法。
PostgreSQL、MySQL 和 SQLite 對於不帶引號的識別碼都是不區分大小寫的,但 Snake_case 是事實上的標準。 created_at, user_email, order_total.
Snake_case 對於需要下劃線而不是破折號的檔案名稱和 URL 段很友善。 (對於 URL slug, kebab-case 更常見 - Google 將連字符視為 URL 中的單字分隔符,而將下劃線視為連接器。 )
雖然環境變數通常是 CONSTANT_CASE,下劃線分隔符相同。 Snake_case 與有效的環境變數名稱相差 1 toUpperCase() 。
Snake_case 轉換器應用確定性管道。首先,它透過偵測邊界將輸入字串拆分為單字:空格、連字號、底線和大小寫轉換(例如,從小寫到大寫)。每個邊界都被視為單字分隔符號。然後每個單字都是小寫的。最後,單字用一條底線連接起來(_).
縮寫詞(例如, HTTP) 在拆分過程中被視為單個單詞,因為它們完全由大寫字母組成;小寫後,它們變成 http。所有格(例如, user's) 失去撇號並且 s 在分詞期間,因為撇號充當非字母數字分隔符號。連字符的單字(例如, well-known) 在連字符處自然分開。演算法不會保留單字邊界偵測以外的原始字母大小寫。
雖然您可以使用命令列工具或文字處理器獲得相同的結果,但該轉換器是專門為速度和準確性而建造的。
| 這個工具 | sed命令 | 單字“更改大小寫” | |
|---|---|---|---|
| 辦案 | 將所有字元轉換為小寫。 | 需要透過 y 或 tr 明確小寫。 | 僅提供大寫、小寫、標題大小寫。 |
| 分詞 | 偵測空格、連字號、底線和大小寫轉換。 | 必須手動定義分隔符號(例如 sed 's/[ _-]/-/g')。 | 不分詞;僅更改整個選擇的大小寫。 |
| 輸出格式 | 直接產生帶有下劃線的snake_case。 | 需要額外的管道來用底線替換空格。 | 無法原生生成snake_case;需手動更換。 |
隨著 20 世紀 90 年代和 2000 年代初 Python 和 Ruby 的興起,snake_case 命名約定變得突出。 Python 的 PEP 8 (2001) 正式建議使用 Snake_case 作為變數和函數名,而 Ruby 社羣則採用它作為方法和符號。它的根源可以追溯到 C 的下劃線分隔標識符(例如, MAX_LENGTH),但在動態類型語言中,小寫變體成為了駝峯命名法的更具可讀性的替代方案。 「snake_case」一詞本身在 2000 年代初期被 Ruby 愛好者所流行。
這取決於您的語言和團隊慣例。 Python、Ruby 和大多數資料庫偏好 Snake_case。 JavaScript、Java、C#、Swift 和 Kotlin 更喜歡駝峯命名法。規則是遵循您的語言的官方風格指南和您團隊的現有程式碼 - 切勿在一個程式碼庫中混合約定。
帶有下劃線前綴的名稱,例如 _private 在 Python 和 Ruby 中通常表示「僅供內部使用」。雙下劃線 (__name__) 保留用於語言定義的識別符。我們的轉換器會從常規短語中刪除前導和尾隨下劃線 - 如果需要,請手動將其添加回來。
數字保留在原來的位置:「version 2 alpha」→「version_2_alpha」。緊跟在字母後面的數字不會被分隔,除非輸入的數字之間有空格或標點符號。
下劃線的全小寫字母在視覺上就像一條蛇在頁面上滑行。這個名字在 2000 年代中期的早期 Ruby 社區中流行起來。