這篇“go語言常量有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“go語言常量有哪些”文章吧。
go語言常量有5種:布爾型常量、整數型常量、浮點型常量、復數常量和字符串型常量。Go語言中的常量使用關鍵字const定義,用于存儲不會改變的數據,常量是在編譯時被創建的,即使定義在函數內部也是如此,并且只能是布爾型、數字型(整數型、浮點型和復數)和字符串型。
常量是指程序在執行過程中可能不會改變的固定值。 這些固定值也稱為文字。
常量是程序中最基礎的元素,在定義之后就不能再重新賦值了。
Go語言中的常量使用關鍵字 const 定義,用于存儲不會改變的數據,常量是在編譯時被創建的,即使定義在函數內部也是如此,并且只能是布爾型、數字型(整數型、浮點型和復數)和字符串型。由于編譯時的限制,定義常量的表達式必須為能被編譯器求值的常量表達式。
布爾常量
布爾常量只有兩個取值,真(true)或者假(false)。
代碼如下:
const x = true
fmt.Print(x) //輸出true
整數常量
整型常量其實就是正數
代碼如下:
const x = 20
fmt.Print(x) //輸出20
浮點數常量
浮點數常量其實就是小數
代碼如下:
cOnstx= 0.618
fmt.Print(x) //輸出%f0.618
字符/字符串常量
代碼如下:
const x = 'a'
fmt.Print(x) //輸出97
const x = "a"
fmt.Print(x) //輸出a
復數常量
代碼如下:
const x = 3 + 2i
fmt.Print(x) //輸出%v(3+2i)
仔細看的童靴會發現'a'和”a”的輸出值不一樣,單引號的'a'表示字符,雙引號的”a”表示字符串。在Go語言里 '1′,”1″,1是不一樣的值,這個和C語言是一樣的。有興趣的童靴可以自己試試輸出試試看。
擴展知識:無類型常量
Go語言的常量有個不同尋常之處。雖然一個常量可以有任意一個確定的基礎類型,例如 int 或 float64,或者是類似 time.Duration 這樣的基礎類型,但是許多常量并沒有一個明確的基礎類型。
編譯器為這些沒有明確的基礎類型的數字常量提供比基礎類型更高精度的算術運算,可以認為至少有 256bit 的運算精度。這里有六種未明確類型的常量類型,分別是無類型的布爾型、無類型的整數、無類型的字符、無類型的浮點數、無類型的復數、無類型的字符串。
通過延遲明確常量的具體類型,不僅可以提供更高的運算精度,而且可以直接用于更多的表達式而不需要顯式的類型轉換。
【示例 1】math.Pi 無類型的浮點數常量,可以直接用于任意需要浮點數或復數的地方:
var x float32 = math.Pi
var y float64 = math.Pi
var z complex128 = math.Pi
如果 math.Pi 被確定為特定類型,比如 float64,那么結果精度可能會不一樣,同時對于需要 float32 或 complex128 類型值的地方則需要一個明確的強制類型轉換:
const Pi64 float64 = math.Pi
var x float32 = float32(Pi64)
var y float64 = Pi64
var z complex128 = complex128(Pi64)
以上就是關于“go語言常量有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。