命名切片
字串隨機數
錯誤處理
在go語言官方提供的effective go的基礎之上,我們制定了如下的編碼規範作為補充。
像這樣:
// this is a comment
不要這樣:
//this is a comment
用於**生成的指令不需要遵循這個規則:
//go:generate go run gen.go
另外,臨時注釋**也不需要新增空格,並且這些注釋應該在提交之前刪除。
// mathematical constants.
const pi =
3.1415925
像這樣:
// 包級別匯出的變數
var errsomthing = errors.
new(
"something wenti wrong"
)func
main()
不要這樣:
var errorsomething = errors.
new(
"something went wrong"
)var somethingerr = errors.
new(
"something went wrong"
)var somethingerror = errors.
new(
"something went wrong"
)func
main()
注意,錯誤訊息應該用小寫字母開頭的字串,因為這些訊息可能會與其他內容拼接。
像這樣:
// 匯出的變數
var oauthenabled bool
var githubtoken string
// 未匯出的變數,小寫第乙個單詞的全部字母
var oauthenabled bool
var githubtoken string
不要這樣:
// 未匯出的變數
var oauthenabled bool
var githubtoken string
像這樣:
github.com/shurcool/tictactoe/player/random不要這樣:
github.com/shurcool/tictactoe/players/random注意,example內的資料夾名稱也是單數形式的。
像這樣:
var users [
]string
不要這樣:
users :=
string
// or
users :=
make([
]string,0
)
像這樣:
if
len(s)
>
0
不要這樣:
if s !=
nil&&
len(s)
>
0
類似地,map
和channel
也可以使用len()
檢查是否為空。
像這樣:
var s1, s2 [
]byte
// ...
copy
(s2, s1)
不要這樣:
var s1, s2 [
]byte
// ...
for i, v :=
range s1
for i :=
range s1
slice =([
]byte
("hello "),
"world"
...)
像這樣:
if s ==
""
不要這樣:
if
len(s)==0
雖然這兩種寫法都是正確的,但前一種寫法的可讀性更好。
import
("crypto/rand"
"fmt"
)func
key(
)string
return fmt.
sprintf
("%x"
, buf)
}
像這樣:
}不要這樣:
}像這樣:
func
formattimewithmessage
(hours, minutes int)(
string
,error
)// ...
}
不要這樣:
func
formattimewithmessage
(hours, minutes int)(
string
,error
)// ...
}
當多個地方都有呼叫 formattime 函式時,後者無法有效地定位錯誤**。
todo
todo
語言編碼風格
打算重新學習一下程式語言,已c語言為例,本類文章主要記述學習過程。c語言的程式設計風格,好的程式設計風格能讓人一眼看明白 的含義,並且讓 就像是藝術品一樣精彩,一下為參考一下優秀的注釋內容和 內容來使自己的 清晰易懂,便於維護 這是乙個事例程式,版權屬於cc 使用陣列的乙個例子 include vo...
來自 Google 的 R 語言編碼風格指南
r 語言是一門主要用於統計計算和繪圖的高階程式語言。這份 r 語言編碼風格指南旨在讓我們的 r 更容易閱讀 分享和檢查。以下規則系與 google 的 r 使用者群體協同設計而成。概要 r編碼風格約定 一 表示和命名 二 語法 三 組織 概要 r語言使用規則 四 語言 五 例外 六 結語 七 參考文...
來自 Google 的 R 語言編碼風格指南
r語言是一門主要用於統計計算和繪圖的高階程式語言.這份 r 語言編碼風格指南旨在讓我們的 r 更容易閱讀 分享和檢查.以下規則系與 google 的 r 使用者群體協同設計而成.檔案命名 以.r 大寫 結尾 識別符號命名 variable.name,functionname,kconstantnam...