在c#、java等高級語言中,經(jīng)常會用到枚舉類型來表示狀態(tài)等。
在golang中并沒有枚舉類型,可以使用const來模擬枚舉類型。 (推薦學(xué)習(xí):go)
枚舉可以根據(jù)Integer、Long、Short或Byte中的任意一種數(shù)據(jù)類型來創(chuàng)建一種新型變量。這種變量能設(shè)置為已經(jīng)定義的一組之中的一個,有效地防止用戶提供無效值。該變量可使代碼更加清晰,因?yàn)樗梢悦枋鎏囟ǖ闹怠?/strong>
type PolicyType int32const ( Policy_MIN PolicyType = 0 Policy_MAX PolicyType = 1 Policy_MID PolicyType = 2 Policy_AVG PolicyType = 3) }
這里定義了一個新的類型PolicyType,并且定義了4個常量(Policy_MIN, Policy_MAX, Policy_MID, Policy_AVG),類型是PolicyType。
使用舉例
func foo(p PolicyType) { fmt.Printf("enum value: %vn", p)}func main() { foo(Policy_MAX)}
運(yùn)行結(jié)果
$ go build && ./main enum value: 1