- Go并發(fā)編程實戰(zhàn)
- 汪明
- 818字
- 2022-07-29 15:05:30
2.4 常量
Go語言的常量是一個簡單值的標識符,在Go程序運行期間不會被修改。常量中的數(shù)據(jù)類型只可以是布爾類型、數(shù)值類型和字符串類型。Go語言中常量的聲明語法為:
const 常量名 [數(shù)據(jù)類型] = 常量值
常量聲明的關(guān)鍵詞為const,后面跟著常量名(標識符),其中的數(shù)據(jù)類型是可選的,但值不能省略。Go編譯器可以根據(jù)常量的值來推斷它的數(shù)據(jù)類型。常量聲明有顯式聲明和隱式聲明之分:
· 顯式聲明:const myConst string = "hello"。
· 隱式聲明:const myConst = "hello"。
另外,我們可以在一行語句中同時聲明多個同類型的常量,語法如下:
const 常量名1, 常量名2,...,常量名n= 常量值1,常量值2,...,常量值n
下面是一個常量基本用法的示例程序2-11。
示例程序2-11 常量基本用法:chapter02\code07\const.go

在示例程序2-11中,第05行顯式聲明了一個標識符為ver的常量,其值為"1.0.0"。06行隱式聲明了一個標識符為author的常量,其值為"jackwang"。第08行同時聲明了兩個常量a和b,這種聲明和賦值方式可以簡化代碼量。第10~13行的常量用法往往用來模擬枚舉類型。
注意
在Go語言中,常量聲明后可以不使用,編譯器不會因此而報錯。
Go語言并沒有提供枚舉類型,但是可以使用const來模擬枚舉類型。在正式模擬枚舉類型之前,我們先介紹Go語言的自定義類型,其語法為:
type 自定義類型名 類型
下面是用常量模擬枚舉類型的示例程序2-12。
示例程序2-12 用常量模擬枚舉類型:chapter02\code07\enum.go

在示例程序2-12中,第05行用type SEX int8自定義了一個SEX類型。SEX類型是基于int8類型的,因此可以存儲int8數(shù)據(jù)。第06~11行用const定義了兩個SEX類型的常量MAN和FEMALE。第13行const sex = MAN語句定義了一個SEX類型的常量sex,其值為常量值(枚舉值)MAN。第15行打印輸出sex的類型時會輸出類型main.SEX。
在Go語言中,常量可以在函數(shù)外進行聲明,聲明的時候必須要指定常量的值,否則會報錯。
注意
在Go語言中,用常量可以模擬枚舉類型,但是還不是真正的枚舉類型,例如可以給SEX類型的變量賦值2,而不是必須為MAN或者FEMALE。
在Go語言中,還有一種特殊常量iota,可以認為是一個可以被編譯器修改值的常量。iota在const關(guān)鍵字出現(xiàn)時將被重置為0,并在后續(xù)每新增一行常量聲明時使iota計數(shù)加1。
- Practical Data Analysis Cookbook
- 程序員面試筆試寶典(第3版)
- 信息可視化的藝術(shù):信息可視化在英國
- Web Scraping with Python
- 精通API架構(gòu):設(shè)計、運維與演進
- Linux網(wǎng)絡程序設(shè)計:基于龍芯平臺
- Hands-On Enterprise Automation with Python.
- 基于Swift語言的iOS App 商業(yè)實戰(zhàn)教程
- The Professional ScrumMaster’s Handbook
- Learning Material Design
- Kubernetes源碼剖析
- 機器學習微積分一本通(Python版)
- 平面設(shè)計經(jīng)典案例教程:CorelDRAW X6
- 軟件測試分析與實踐
- Arduino Electronics Blueprints