開始學習Go三個月下來最讓我感到疑惑之一的是Go的變數命名。除了MixedCase命名(camelCase)可以理解外,過於簡短的命名對身為Java工程師和讀過Clean Code的我不太能理解。
在Go的標準函式庫(Standard library)及一些知名的函式庫如Gin的原始碼中都看到變數的名稱都非常簡短的縮寫,例如router變數命名為r
,Engine命名為e
,error命名為err
等,和我以前讀Clean Code裡面提到命名越清楚越好且不要用縮寫的原則不太一樣,也和我一直在Java用的函示庫所見不同。
今天為此特地Google了一番,找到一些文件和文章說明了Go變數命名慣例如下。
總之Go語言鼓勵在有範圍的scope中使用簡短的變數命名,且命名中避免重複type的命名,例如在Java我習慣命名變數為employeeList
或supplierMap
,但在Go可能會命名emps
或sm
。
至於這樣的方式好不好見仁見智,但官方推崇這簡短的命名方式也只能遵循了。
沒有留言:
張貼留言