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

Golang有類型常量和無類型常量的區(qū)別

 更新時(shí)間:2023年04月04日 10:44:10   作者:知其黑、受其白  
本文主要介紹了Golang有類型常量和無類型常量的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

場景

在 Go 語言中,常量分為有類型常量和無類型常量。

// 有類型常量
const VERSION string = "v1.0.0"

// 無類型常量
const RELEASE = 3

那么他們有什么區(qū)別呢?

當(dāng)你把有無類型的常量,賦值給一個(gè)變量的時(shí)候,無類型的常量會被隱式的轉(zhuǎn)化成對應(yīng)的類型。

package main
import "fmt"

func main() {
? ? const RELEASE = 3

? ? var x int16 = RELEASE
? ? var y int32 = RELEASE
? ? fmt.Printf("type: %T \n", x) //type: int16
? ? fmt.Printf("type: %T \n", y) //type: int32?
}

可要是有類型常量,不就會進(jìn)行轉(zhuǎn)換,在賦值的時(shí)候,類型檢查就不會通過,從而直接報(bào)錯(cuò)。

package main
import "fmt"
func main() {
? ? const RELEASE int8 = 3

? ? var x int16 = RELEASE //cannot use RELEASE (type int8) as type int16 in assignment
? ? var y int32 = RELEASE //cannot use RELEASE (type int8) as type int32 in assignment
? ? fmt.Printf("type: %T \n", x)?
? ? fmt.Printf("type: %T \n", y)?
}

解決的方法是進(jìn)行顯式的轉(zhuǎn)換。

package main
import "fmt"
func main() {
? ? const RELEASE int8 = 3

? ? var x int16 = int16(RELEASE)?
? ? var y int32 = int32(RELEASE)?
? ? fmt.Printf("type: %T \n", x) ?// type: int16
? ? fmt.Printf("type: %T \n", y) ?// type: int32
}

到此這篇關(guān)于Golang有類型常量和無類型常量的區(qū)別的文章就介紹到這了,更多相關(guān)Golang有類型常量和無類型常量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言的文件操作代碼匯總

    Go語言的文件操作代碼匯總

    本文給大家匯總介紹了go語言中的文件操作的代碼,包括文件的讀寫,文件的新建打開和刪除等,希望對大家學(xué)習(xí)go語言能夠有所幫助
    2018-10-10
  • Go中并發(fā)控制的實(shí)現(xiàn)方式總結(jié)

    Go中并發(fā)控制的實(shí)現(xiàn)方式總結(jié)

    在Go實(shí)際開發(fā)中,并發(fā)安全是老生常談的事情,在并發(fā)下,goroutine之間的存在數(shù)據(jù)資源等方面的競爭,為了保證數(shù)據(jù)一致性、防止死鎖等問題的出現(xiàn),在并發(fā)中需要使用一些方式來實(shí)現(xiàn)并發(fā)控制,本文給大家總結(jié)了幾種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2023-12-12
  • 文字解說Golang Goroutine和線程的區(qū)別

    文字解說Golang Goroutine和線程的區(qū)別

    goroutine 是 Go語言中的輕量級線程實(shí)現(xiàn),由 Go 運(yùn)行時(shí)(runtime)管理,使用每一個(gè) go 關(guān)鍵字將會額外開啟一個(gè)新的協(xié)程 goroutine,今天通過本文給大家介紹下Golang Goroutine和線程的區(qū)別,感興趣的朋友一起看看吧
    2022-03-03
  • go語言題解LeetCode989數(shù)組形式的整數(shù)加法

    go語言題解LeetCode989數(shù)組形式的整數(shù)加法

    這篇文章主要為大家介紹了go語言題解LeetCode989數(shù)組形式的整數(shù)加法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 關(guān)于golang監(jiān)聽rabbitmq消息隊(duì)列任務(wù)斷線自動重連接的問題

    關(guān)于golang監(jiān)聽rabbitmq消息隊(duì)列任務(wù)斷線自動重連接的問題

    這篇文章主要介紹了golang監(jiān)聽rabbitmq消息隊(duì)列任務(wù)斷線自動重連接,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 從并發(fā)到并行解析Go語言中的sync.WaitGroup

    從并發(fā)到并行解析Go語言中的sync.WaitGroup

    Go?語言提供了許多工具和機(jī)制來實(shí)現(xiàn)并發(fā)編程,其中之一就是?sync.WaitGroup。本文就來深入討論?sync.WaitGroup,探索其工作原理和在實(shí)際應(yīng)用中的使用方法吧
    2023-05-05
  • Go語言的GOPATH與工作目錄詳解

    Go語言的GOPATH與工作目錄詳解

    這篇文章主要介紹了Go語言的GOPATH與工作目錄詳解,本文詳細(xì)講解了GOPATH設(shè)置、應(yīng)用目錄結(jié)構(gòu)、編譯應(yīng)用等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • 詳解Go語言如何判斷兩個(gè)對象是否相等

    詳解Go語言如何判斷兩個(gè)對象是否相等

    在編程中,判斷兩個(gè)對象是否相等是一項(xiàng)常見的任務(wù),同時(shí)判斷對象是否相等在很多情況下都非常重要,所以在接下來的內(nèi)容中,我們將詳細(xì)介紹在?Go?語言中如何判斷對象是否相等的方法和技巧,需要的可以參考一下
    2023-06-06
  • golang時(shí)間字符串和時(shí)間戳轉(zhuǎn)換的案例

    golang時(shí)間字符串和時(shí)間戳轉(zhuǎn)換的案例

    這篇文章主要介紹了golang時(shí)間字符串和時(shí)間戳轉(zhuǎn)換的案例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • golang結(jié)構(gòu)化日志log/slog包之slog.Record的用法簡介

    golang結(jié)構(gòu)化日志log/slog包之slog.Record的用法簡介

    這篇文章主要為大家詳細(xì)介紹了golang結(jié)構(gòu)化日志log/slog包中slog.Record結(jié)構(gòu)體的使用方法和需要注意的點(diǎn),文中的示例代碼講解詳細(xì),需要的可以學(xué)習(xí)一下
    2023-10-10

最新評論