欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言基礎(chǔ)枚舉的用法及示例詳解

 更新時間:2021年11月17日 15:20:31   作者:楓少文  
這篇文章主要為大家介紹了Go語言基礎(chǔ)枚舉的用法及示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

在這里插入圖片描述

概述

將變量的值一一列舉出來,變量只限于列舉出來的值的范圍內(nèi)取值

Go語言中沒有枚舉這種數(shù)據(jù)類型的,但是可以使用const配合iota模式來實現(xiàn)

一、普通枚舉

const (
	 cpp = 0
	 java = 1
	 python = 2
	 golang = 3
)

二、自增枚舉

iota只能在常量的表達(dá)式中使用

fmt.Println(iota)  //undefined: iota

它默認(rèn)開始值是0,const中每增加一行加1

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

每次 const 出現(xiàn)時,都會讓 iota 初始化為0

const d = iota    // a=0
const (
	  e = iota     //b=0
	  f            //c=1
)

如果中斷iota,必須顯式恢復(fù)?。?!

const ( 
    Low = iota    //0
    Medium        //1
    High = 100   //100
    Super        //100
    Band = iota  //4
)

如果是同一行,值都一樣

const (
i          = iota
j1, j2, j3 = iota, iota, iota
k          = iota
)

可跳過的值

const (
		k1 = iota // 0
		k2        // 1
		_         //2
		_         //3
		k3       // 4
	)

中間插入一個值

const (
	Sun = iota //Sun = 0
	Mon        // Mon = 1
	Tue = 7    //7
	Thu = iota // 3
	Fri        //4
)

注意

  • iota 必須配合const 使用,否則undefined: iota
  • 每次 const 出現(xiàn)時,都會讓 iota 初始化為0
  • 如果是同一行,值都一樣

代碼

package main
import "fmt"
func main() {
	//普通枚舉
	const (
		cpp    = 0
		java   = 1
		python = 2
	)
	fmt.Printf("cpp=%d  java=%d  python=%d\n", cpp, java, python) //a=0  b=1  c=2
	//1.iota只能在常量的表達(dá)式中使用
	//fmt.Println(iota)  //undefined: iota
	//2.它默認(rèn)開始值是0,const中每增加一行加1
	const (
		a = iota //0
		b        //1
		c        //2
	)
	fmt.Printf("a=%d  b=%d  c=%d\n", a, b, c) //a=0  b=1  c=2
	//3.每次 const 出現(xiàn)時,都會讓 iota 初始化為0
	const d = iota // a=0
	const (
		e = iota //b=0
		f        //c=1
	)
	fmt.Printf("d=%d  e=%d  f=%d\n", d, e, f) //d=0  e=0  f=1
	//4.如果中斷iota,必須顯式恢復(fù)!?。?
	const (
		Low = iota //0
		Medium //1
		High = 100 //100
		Super //100
		Band = iota //4
	)
	//Low=0  Medium=1  High=100  Super=100  Band=4
	fmt.Printf("Low=%d  Medium=%d  High=%d  Super=%d  Band=%d\n", Low, Medium, High, Super, Band)
	//5.如果是同一行,值都一樣
	const (
		i          = iota
		j1, j2, j3 = iota, iota, iota
		k          = iota
	)
	//i=0  j1=1  j2=1  j3=1  k=2
	fmt.Printf("i=%d  j1=%d  j2=%d  j3=%d  k=%d\n", i, j1, j2, j3, k)
	//6.可跳過的值
	const (
		k1 = iota // 0
		k2        // 1
		_         //2
		_         //3
		k3        // 4
	)
	//	k1=0  k2=1  k3=4
	fmt.Printf("k1=%d  k2=%d  k3=%d \n", k1, k2, k3)
	//7.中間插入一個值
	const (
		Sun = iota //Sun = 0
		Mon        // Mon = 1
		Tue = 7    //7
		Thu = iota // 3
		Fri        //4
	)
	//Sun=0  Mon=1  Tue=7  Thu=3  Fri=4
	fmt.Printf("Sun=%d  Mon=%d  Tue=%d  Thu=%d  Fri=%d\n", Sun, Mon, Tue, Thu, Fri)

}

以上就是Go語言基礎(chǔ)枚舉的用法及示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go語言枚舉的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Centos下搭建golang環(huán)境及vim高亮Go關(guān)鍵字設(shè)置的方法

    Centos下搭建golang環(huán)境及vim高亮Go關(guān)鍵字設(shè)置的方法

    這篇文章先給大家詳細(xì)介紹了在Centos下搭建golang環(huán)境的步驟,大家按照下面的方法就可以自己搭建golang環(huán)境,搭建完成后又給大家介紹了vim高亮Go關(guān)鍵字設(shè)置的方法,文中通過示例代碼介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-11-11
  • 使用go實現(xiàn)常見的數(shù)據(jù)結(jié)構(gòu)

    使用go實現(xiàn)常見的數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了使用go實現(xiàn)常見的數(shù)據(jù)結(jié)構(gòu),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Golang實現(xiàn)支持多種類型的set

    Golang實現(xiàn)支持多種類型的set

    在項目開發(fā)中,常常會用到set去重,為什么不寫一個set呢,而且go現(xiàn)在支持了泛型,所以本文就來用Golang實現(xiàn)一個支持多種類型的set呢
    2023-05-05
  • golang中sync.Mutex的實現(xiàn)方法

    golang中sync.Mutex的實現(xiàn)方法

    本文主要介紹了golang中sync.Mutex的實現(xiàn)方法,mutex?主要有兩個?method:?Lock()?和?Unlock(),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Golang解析JSON遇到的坑及解決方法

    Golang解析JSON遇到的坑及解決方法

    這篇文章主要為大家介紹了Golang解析JSON時會遇到的一些坑及解決方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Go語言有一點的幫助,需要的可以參考一下
    2023-02-02
  • Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序

    Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序

    這篇文章主要介紹了Go外部依賴包vendor,$GOPATH和$GOPATH/pkg/mod下查找順序,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go語言實現(xiàn)websocket推送程序

    Go語言實現(xiàn)websocket推送程序

    這篇文章主要介紹了Go語言實現(xiàn)websocket推送程序,WebSocket是基于TCP的一個雙向傳輸數(shù)據(jù)的協(xié)議,和HTTP協(xié)議一樣,是在應(yīng)用層的,他的出現(xiàn),是為了解決網(wǎng)頁進行持久雙向傳輸數(shù)據(jù)的問題
    2023-01-01
  • GoFrame基于性能測試得知grpool使用場景

    GoFrame基于性能測試得知grpool使用場景

    這篇文章主要為大家介紹了GoFrame基于性能測試得知grpool使用場景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Golang?sync.Once實現(xiàn)單例模式的方法詳解

    Golang?sync.Once實現(xiàn)單例模式的方法詳解

    Go?語言的?sync?包提供了一系列同步原語,其中?sync.Once?就是其中之一。本文將深入探討?sync.Once?的實現(xiàn)原理和使用方法,幫助大家更好地理解和應(yīng)用?sync.Once,需要的可以參考一下
    2023-05-05
  • 詳解Golang中Context的原理和使用技巧

    詳解Golang中Context的原理和使用技巧

    Golang?的?Context?包,中文可以稱之為“上下文”,是用來在?goroutine?協(xié)程之間進行上下文信息傳遞的,這些上下文信息包括?kv?數(shù)據(jù)、取消信號、超時時間、截止時間等。本文主要介紹了Context的原理和使用技巧,希望對大家有所幫助
    2022-11-11

最新評論