亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解讀golang中的const常量和iota

 更新時間:2022年12月29日 10:49:59   作者:liberg  
這篇文章主要介紹了golang中的const常量和iota,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

golang中的const常量和iota

golang中通過var定義變量,通過const定義常量。

常量只能是基本的簡單值類型,常量一經(jīng)定義其值不可修改(類比Java中的final)。

const (
?? ?MaxInt = int(^uint(0) >> 1)
?? ?MinInt = -MaxInt - 1
)
const PI = 3.14
PI = 3.14159//編譯錯誤,Cannot assign to PI
  • iota是一個特殊常量,可以認(rèn)為是一個可以被編譯器修改的常量。
  • iota在const關(guān)鍵字出現(xiàn)時將被重置為0,const中每新增一行常量聲明將使 iota 計數(shù)加1,因此iota可作為const 語句塊中的行索引。
const (
?? ?a ? = 1 ? ? ? ? ? ? ? ? ?//1 (iota=0)
?? ?b ? ? ? ? ? ? ? ? ? ? ? ?//1 (iota=1,同上一行,相當(dāng)于寫b=1)
?? ?c ? = b + iota ? ? ? ? ? //3 (iota=2,b=1)
?? ?d ? ? ? ? ? ? ? ? ? ? ? ?//4 (iota=3,同上一行,相當(dāng)于寫b+iota,b=1)
?? ?e ? ? ? ? ? ? ? ? ? ? ? ?//5 (iota=4,同上一行,相當(dāng)于寫b+iota,b=1)
?? ?f ? = "last one but one" // ?(iota=5)
?? ?end = iota ? ? ? ? ? ? ? //6 (iota=6)
)
fmt.Println(a, reflect.TypeOf(a))
fmt.Println(b, reflect.TypeOf(b))
fmt.Println(c, reflect.TypeOf(c))
fmt.Println(d, reflect.TypeOf(d))
fmt.Println(e, reflect.TypeOf(e))
fmt.Println(f, reflect.TypeOf(f))
fmt.Println(end, reflect.TypeOf(end))
/*?
輸出:
1 int
1 int
3 int
4 int
5 int
last one but one string
6 int
*/

golang定義常量

在所有的編程語言當(dāng)中常量都代表一個固定的值,一旦常量被定義則無法修改。在Golang中使用const關(guān)鍵字進(jìn)行常量聲明。

定義常量

Golang定義常規(guī)類型的常量可以忽略類型。

const SUCCESS = true
const FAIL = false

定義多個相同類型的常量

const (
CONST1 = 0
CONST2 = 1
CONST3 = 2
)

定義特定類型的常量

定義特定類型的常量需要根據(jù)實(shí)際情況來決定。

假如我們現(xiàn)在用常量來聲明用戶的三個基本狀態(tài)(正常,禁止登錄,刪除),一般這種情況我們會首先聲明一個用戶狀態(tài)的類型。

聲明用戶狀態(tài)類型:

type UserStatus int

定義用戶狀態(tài)常量:

const (
USER_STATUS_NORMAL UserStatus = iota
USER_STATUS_DISABLED_LOGIN
USER_STATUS_DELETE
)

完整示例:

package user
//Status 用戶類型.
type Status int
const (
//STATUS_NORMAL 狀態(tài)正常
STATUS_NORMAL Status = iota
//STATUS_DISABLED_LOGIN 禁止登錄.
STATUS_DISABLED_LOGIN
//STATUS_DELETE 已刪除.
STATUS_DELETE
)

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Go使用Protocol?Buffers在數(shù)據(jù)序列化的優(yōu)勢示例詳解

    Go使用Protocol?Buffers在數(shù)據(jù)序列化的優(yōu)勢示例詳解

    這篇文章主要為大家介紹了Go使用Protocol?Buffers在數(shù)據(jù)序列化的優(yōu)勢示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Go?WaitGroup及Cond底層實(shí)現(xiàn)原理

    Go?WaitGroup及Cond底層實(shí)現(xiàn)原理

    這篇文章主要為大家介紹了Go?WaitGroup及Cond底層實(shí)現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 分析Go錯誤處理優(yōu)化go?recover機(jī)制缺陷

    分析Go錯誤處理優(yōu)化go?recover機(jī)制缺陷

    這篇文章主要為大家介紹了分析Go錯誤處理優(yōu)化go?recover機(jī)制缺陷示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Golang觀察者模式優(yōu)化訂單處理系統(tǒng)實(shí)例探究

    Golang觀察者模式優(yōu)化訂單處理系統(tǒng)實(shí)例探究

    當(dāng)涉及到訂單處理系統(tǒng)時,觀察者設(shè)計模式可以用于實(shí)現(xiàn)訂單狀態(tài)的變化和通知,在這篇文章中,我們將介紹如何使用Golang來實(shí)現(xiàn)觀察者設(shè)計模式,并提供一個基于訂單處理系統(tǒng)的代碼示例
    2024-01-01
  • go語言基礎(chǔ) seek光標(biāo)位置os包的使用

    go語言基礎(chǔ) seek光標(biāo)位置os包的使用

    這篇文章主要介紹了go語言基礎(chǔ) seek光標(biāo)位置os包的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 深入探究Go語言中for?range語句

    深入探究Go語言中for?range語句

    為了更加便捷地遍歷這些數(shù)據(jù)類型,Go語言引入了for...range語句,本文將以數(shù)組遍歷為起點(diǎn),逐步介紹for...range語句在不同數(shù)據(jù)類型中的應(yīng)用,希望對大家有所幫助
    2023-06-06
  • 如何在Go語言中靈活運(yùn)用匿名函數(shù)和閉包

    如何在Go語言中靈活運(yùn)用匿名函數(shù)和閉包

    這篇文章主要為大家介紹了如何在Go語言中靈活運(yùn)用匿名函數(shù)和閉包實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Golang泛型實(shí)現(xiàn)類型轉(zhuǎn)換的方法實(shí)例

    Golang泛型實(shí)現(xiàn)類型轉(zhuǎn)換的方法實(shí)例

    將一個值從一種類型轉(zhuǎn)換到另一種類型,便發(fā)生了類型轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于Golang泛型實(shí)現(xiàn)類型轉(zhuǎn)換的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Go語言中的switch用法實(shí)例分析

    Go語言中的switch用法實(shí)例分析

    這篇文章主要介紹了Go語言中的switch用法,實(shí)例分析了switch的功能及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • GO語言中接口和接口型函數(shù)的具體使用

    GO語言中接口和接口型函數(shù)的具體使用

    本文主要介紹了GO語言中接口和接口型函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論