亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang枚舉類型的基礎用法

發布時間:2021-09-04 13:33:07 來源:億速云 閱讀:105 作者:chen 欄目:開發技術

本篇內容主要講解“Golang枚舉類型的基礎用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Golang枚舉類型的基礎用法”吧!

基礎工作 

為了下面講解方便,這里使用 go modules 的方式先建立一個簡單工程。

~/Projects/go/examples  
?  mkdir enum  
~/Projects/go/examples  
?  cd enum  
~/Projects/go/examples/enum  
?  go mod init enum  
go: creating new go.mod: module enum  
~/Projects/go/examples/enum  
?  touch enum.go

const + iota

以 啟動、運行中、停止 這三個狀態為例,使用 const 關鍵來聲明一系列的常量值。在 enum.go 中寫上以下內容:

package main  
import "fmt"  
const (  
    Running int = iota  
    Pending  
    Stopped  
)  
func main() {  
    fmt.Println("State running: ", Running)  
    fmt.Println("State pending: ", Pending)  
    fmt.Println("State Stoped: ", Stopped)  
}

保存并運行,可以得到以下結果,

~/Projects/go/examples/enum   
?  go run enum.go  
State running:  0  
State pending:  1  
State Stoped:  2

在說明發生了什么之前,我們先看來一件東西,iota。相比于 c、java,go 中提供了一個常量計數器,iota,它使用在聲明常量時為常量連續賦值。

比如這個例子,

const (  
    a int = iota // a = 0  
    b int = iota // b = 1  
    c int = iota // c = 2  
)  
const d int = iota // d = 0

在一個 const 聲明塊中,iota 的初始值為 0,每聲明一個變量,自增 1。以上的代碼可以簡化成:

const (  
    a int = iota // a = 0  
    b // b = 1  
    c // c = 2  
)  
const d int = iota // d = 0

設想一下,如果此時有 50 或者 100 個常量數,在 c 和 java 語言中寫出來會是什么情況。

關于 iota,有更多的具體的技巧(例如跳數),詳細請看官方定義 iota。

通過使用 const 來定義一連串的常量,并借助 iota 常量計數器,來快速的為數值類型的常量連續賦值,非常方便。雖然沒有了 enum 關鍵字,在這種情況下發現,是多余的,枚舉本質上就是常量的組合。

當然,你可以使用以下方式,來更接近其它語言的 enum,

// enum.go  
...  
type State int  
const (  
    Running State = iota  
    Pending  
    Stopped  
)  
...

把一組常量值,使用一個類型別名包裹起來,是不是更像其它語言中的 enum {} 定義了呢?

你還可以將上面的例子改為:

// enum.go  
...  
type State int 
const (  
    Running State = iota  
    Pending  
    Stopped  
)  
func (s State) String() string {  
    switch s {  
    case Running:  
        return "Running"  
    case Pending:  
        return "Pending"  
    case Stopped:  
        return "Stopped"  
    default:  
        return "Unknown" 
     }  
}  
...

為定義的枚舉類型加上 String 函數,運行結果如下:

~/Projects/go/examples/enum   
?  go run enum.go  
State running:  Running  
State pending:  Pending  
State Stoped:  Stopped

到此,相信大家對“Golang枚舉類型的基礎用法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海淀区| 中阳县| 兴海县| 高碑店市| 兴安盟| 阿坝县| 晋宁县| 雷州市| 青阳县| 曲沃县| 延安市| 荆门市| 通榆县| 和硕县| 许昌市| 贵德县| 鹰潭市| 通山县| 馆陶县| 金湖县| 泰兴市| 黑龙江省| 武平县| 个旧市| 临猗县| 多伦县| 黄石市| 英德市| 阳西县| 惠来县| 石家庄市| 米泉市| 灵山县| 克什克腾旗| 湖北省| 嘉善县| 托克托县| 荔波县| 鄱阳县| 汤原县| 宁晋县|