go語言中的const如何使用

這篇文章主要講解了“go語言中的const如何使用”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“go語言中的const如何使用”吧!

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比南靖網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式南靖網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務覆蓋南靖地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

在go語言中,const關(guān)鍵字可定義常量,用于存儲不會改變的數(shù)據(jù),定義單個常量的語法“const 常量名 = 常量值”,批量定義多個常量的語法“const (常量名1=常量值1 常量名2=常量值2 ...)”。常量是在編譯時被創(chuàng)建的,即使定義在函數(shù)內(nèi)部也是如此,并且只能是布爾型、數(shù)字型(整數(shù)型、浮點型和復數(shù))和字符串型。

Go 語言中使用const關(guān)鍵字定義常量。

常量用于存儲不會改變的數(shù)據(jù),常量是在編譯時被創(chuàng)建的,即使定義在函數(shù)內(nèi)部也是如此,并且只能是布爾型、數(shù)字型(整數(shù)型、浮點型和復數(shù))和字符串型。由于編譯時的限制,定義常量的表達式必須為能被編譯器求值的常量表達式。

常量的定義格式和變量的聲明語法類似:const name [type] = value,例如:

const pi = 3.14159 // 相當于 math.Pi 的近似值

在Go語言中,你可以省略類型說明符 [type],因為編譯器可以根據(jù)變量的值來推斷其類型。

  • 顯式類型定義: const b string = "abc"

  • 隱式類型定義: const b = "abc"

常量的值必須是能夠在編譯時就能夠確定的,可以在其賦值表達式中涉及計算過程,但是所有用于計算的值必須在編譯期間就能獲得。

  • 正確的做法:

const c1 = 2/3

  • 錯誤的做法:

const c2 = getNumber() // 引發(fā)構(gòu)建錯誤: getNumber() 用做值

和變量聲明一樣,可以批量聲明多個常量:

const (
    e  = 2.7182818
    pi = 3.1415926
)

所有常量的運算都可以在編譯期完成,這樣不僅可以減少運行時的工作,也方便其他代碼的編譯優(yōu)化,當操作數(shù)是常量時,一些運行時的錯誤也可以在編譯時被發(fā)現(xiàn),例如整數(shù)除零、字符串索引越界、任何導致無效浮點數(shù)的操作等。

常量間的所有算術(shù)運算、邏輯運算和比較運算的結(jié)果也是常量,對常量的類型轉(zhuǎn)換操作或以下函數(shù)調(diào)用都是返回常量結(jié)果:len、cap、real、imag、complex 和 unsafe.Sizeof。

因為它們的值是在編譯期就確定的,因此常量可以是構(gòu)成類型的一部分,例如用于指定數(shù)組類型的長度:

const IPv4Len = 4
// parseIPv4 解析一個 IPv4 地址 (d.d.d.d).
func parseIPv4(s string) IP {
    var p [IPv4Len]byte
    // ...
}

一個常量的聲明也可以包含一個類型和一個值,但是如果沒有顯式指明類型,那么將從右邊的表達式推斷類型。在下面的代碼中,time.Duration 是一個命名類型,底層類型是 int64,time.Minute 是對應類型的常量。下面聲明的兩個常量都是 time.Duration 類型,可以通過 %T 參數(shù)打印類型信息:

const noDelay time.Duration = 0
const timeout = 5 * time.Minute
fmt.Printf("%T %[1]v\n", noDelay)     // "time.Duration 0"
fmt.Printf("%T %[1]v\n", timeout)     // "time.Duration 5m0s"
fmt.Printf("%T %[1]v\n", time.Minute) // "time.Duration 1m0s"

如果是批量聲明的常量,除了第一個外其它的常量右邊的初始化表達式都可以省略,如果省略初始化表達式則表示使用前面常量的初始化表達式,對應的常量類型也是一樣的。例如:

const (
    a = 1
    b
    c = 2
    d
)
fmt.Println(a, b, c, d) // "1 1 2 2"

感謝各位的閱讀,以上就是“go語言中的const如何使用”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對go語言中的const如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

文章標題:go語言中的const如何使用
文章地址:http://bm7419.com/article32/psddpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、全網(wǎng)營銷推廣品牌網(wǎng)站制作、ChatGPT建站公司、面包屑導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化