蛇形命名法

蛇形命名法snake_case)是指每個空格皆以底線(_)取代的書寫風格,且每個單字的第一個字母皆為小寫。蛇形命名法經常被使用在電腦科學當中,例如程式語言變數名稱、副程式的名字以及檔案名稱。一份研究指出相較於駝峰式大小寫,使用蛇形命名法能夠讓讀者更快速的辨識出值的含意[1]

Linux 核心模組的程式碼,裡面使用了蛇形命名法。

歷史

利用底線作為分隔符號的使用方法最早可以回朔至1960年代晚期,這種使用方法特別與C語言有關係,在C程式設計語言當中曾出現過,並且與駝峰式大小寫形成對比。然而,當時這樣的使用方法並沒有被特別命名,Python網站也僅僅使用"lower_case_with_underscores"來稱呼它。[2]

在網路上,蛇形命名法一詞在2004年首次出現於Ruby社群當中,Gavin Kistner寫道:

對了... 你們怎麼稱呼這種命名風格?蛇形命名法?在有人糾正我之前,我會這樣稱呼它。

然而,前英特爾工程師 Jack Dahlgren 表示,他2002年還在英特爾工作時就已經在使用這個詞了[3]。這個詞有可能在多個社區內獨立的被發展出來。

截至2015年 (2015-Missing required parameter 1=month!),其他以分隔符分隔的命名規則的名稱尚未標準化,例如lisp-case、kebab-case、SCREAMING_SNAKE_CASE 等等。[4][5][6]

範例

下面列出使用蛇型命名法的程式語言

  • ABAP [7]
  • Ada ,首字母也大寫[8]
  • C++, Boost [9]
  • C ,用於標準庫中的某些類型名稱,但不適用於函數名稱。
  • Eiffel ,用於類別和feature名稱[10]
  • Elixir ,用於atom、變數和函數名稱[11]
  • Erlang ,用於函數名稱[12]
  • GDScript ,用於變數和函數名稱[13]
  • Java使用 SCREAMING_SNAKE_CASE 作為靜態、常數和列舉的名稱。 [14]
  • Magik
  • OCaml ,用於值、類型和模組的名稱[15]
  • Perl ,用於詞法變數和副程式[16]
  • Oracle SQL 和PL/SQL[17],用於所有不帶引號的標識符(資料表、欄位、索引、限制、PL/SQL 變數、常數、程序/函數、觸發器等),雖然不是 Oracle 本身官方所使用的方法,但仍然受到大多數的使用者推薦並於 Oracle 官方文檔中使用
    • 所有未加引號的蛇形命名法標識符實際上在內部使用 SCREAMING_SNAKE_CASE 標識符。
  • Prolog ,用於atoms(謂詞名稱、函數名稱和常數)和變數[18]
  • Python ,用於變數名、函數名、方法名以及模組或包(即文件)名[2]
  • PHP使用 SCREAMING_SNAKE_CASE 作為類別常數
  • R ,用於變數名、函數名、參數名,尤其是 tidyverse 風格[19]
  • Ruby ,用於變數和方法名稱[20]
  • Rust ,用於變數名、函數名、方法名、模組名和巨集[21]
  • TCL

參見

參考文獻

  1. Sharif, Bonita; Maletic, Jonathan I. (PDF). . IEEE: 196–205. 2010 [2021-12-19]. ISBN 978-1-4244-7604-6. ISSN 1092-8138. doi:10.1109/ICPC.2010.41. (原始内容 (pdf)存档于2022-07-07).
  2. Guido van Rossum; Barry Warsaw; Nick Coghlan. . 2001-07-05 [2021-12-19]. (原始内容存档于2019-04-17).
  3. . 2013-05-10.
  4. . [2021-12-19]. (原始内容存档于2014-12-26).
  5. . [2021-12-19]. (原始内容存档于2016-08-07).
  6. . 23 April 2020 [2021-12-19]. (原始内容存档于2018-06-11).
  7. . help.sap.com. [2020-07-28]. (原始内容存档于2021-12-19).
  8. . [2021-12-19]. (原始内容存档于2022-01-25).
  9. . [2015-08-13]. (原始内容存档于2021-12-19).
  10. . 28 December 2019 [2021-12-19]. (原始内容存档于2017-08-11).
  11. . May 2020.
  12. . [2017-08-11]. (原始内容存档于2010-09-04).
  13. . [2021-12-19]. (原始内容存档于2021-12-19).
  14. . Oracle. [2021-08-03]. (原始内容存档于2021-03-10).
  15. . [2017-03-15]. (原始内容存档于2021-12-19).
  16. Damian Conway. . O'Reilly Media Inc. 2005: 44. ISBN 978-0596001735.
  17. . stevenfeuersteinonplsql.blogspot.com. [2020-12-30]. (原始内容存档于2021-12-19).
  18. Michael A. Covington; Roberto Bagnara; Richard A. O'Keefe; Jan Wielemaker; Simon Price. . arXiv:0911.2899v3可免费查阅.
  19. Wickham, Hadley. . [2021-12-19]. (原始内容存档于2022-07-07).
  20. . May 2020.
  21. . [2021-12-19]. (原始内容存档于2018-09-16).

外部連結

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.