正如名稱“ CONSTANTS”所暗示的意思是固定的,在編程語言中也是如此,即,一旦定義了常量的值,就無法再對其進行修改。常量可以有任何基本數(shù)據(jù)類型,例如整數(shù)常量,浮點常量,字符常量或字符串文字。
如何聲明?
常量就像變量一樣聲明,但是使用const 關鍵字作為前綴來聲明具有特定類型的常量。不能使用:=語法聲明。
package main import "fmt" const PI = 3.14 func main() { const GFG = "nhooo" fmt.Println("Hello", GFG) fmt.Println("Happy", PI, "Day") const Correct= true fmt.Println("Go rules?", Correct) }
輸出:
Hello nhooo Happy 3.14 Day Go rules? true
未類型化和類型化的數(shù)字常量:
類型化常量的工作方式就像不可變變量只能與相同類型互操作,而未類型化常量的工作方式就像文字常量可以與相似類型互操作??梢栽贕o中使用或不使用類型來聲明常量。下面的示例顯示已命名和未命名的類型化和未類型化的數(shù)字常量。
const untypedInteger = 123 const untypedFloating typed = 123.12 const typedInteger int = 123 const typedFloatingPoint float64 = 123.12
以下是Go語言中的常量列表:
數(shù)值常量(整數(shù)常量,浮點常量,復數(shù)常量)
字符串字面量
布爾常量
數(shù)值常量:
數(shù)值常量是高精度值。Go是一種靜態(tài)類型的語言,不允許混合數(shù)字類型的操作。您不能將float64添加到int,甚至不能將int32添加 到int。雖然,寫1e6 * time.Second 或math.Exp(1)甚至 1 <<('\ t'+ 2.0) 都是合法的。在Go中,常量與變量不同,其行為類似于常規(guī)數(shù)字。
數(shù)值常量可以是3種,即整數(shù),浮點數(shù),復數(shù)
整數(shù)常量:
前綴指定基數(shù):十六進制為0x或0X,八進制為0,十進制為0。
整數(shù)字面量也可以具有后綴,分別是U(大寫)和L(大寫)的組合,分別表示無符號和長整數(shù)。
它可以是十進制,八進制或十六進制常量。
一個int最多可以存儲64位整數(shù),有時更少。
以下是整數(shù)常量的一些示例:
85 /* decimal */ 0213 /* octal */ 0x4b /* 十六進制 */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */ 212 /* 合法 */ 215u /* 合法 */ 0xFeeL /* 合法 */ 078 /* 非法的:8不是八進制數(shù)字 */ 032UU /* 非法的:不能重復后綴 */
復數(shù)常量:
復數(shù)常量的行為與浮點常量非常相似。它是整數(shù)常數(shù)(或參數(shù))的有序對 或 實數(shù)對,并且該常數(shù)用逗號分隔,并且該對包含在括號之間。第一個常數(shù)是實部,第二個常數(shù)是虛部。復數(shù)常量COMPLEX * 8使用8個字節(jié)的存儲空間。
(0.0, 0.0) (-123.456E+30, 987.654E-29)
浮動類型常量:
浮點型常量具有一個整數(shù)部分,一個小數(shù)點,一個小數(shù)部分和一個指數(shù)部分。
可以用十進制或指數(shù)形式表示浮點常量。
雖然用十進制形式表示,必須包含小數(shù)點,指數(shù),或兩者兼而有之。
并且在使用指數(shù)形式表示時,必須包括整數(shù)部分,小數(shù)部分或兩者。
以下是浮點類型常量的示例:
3.14159 /* 合法 */ 314159E-5L /* 合法 */ 510E /* 非法:不完整的指數(shù) */ 210f /* 非法:沒有小數(shù)或指數(shù) */ .e55 /* 非法:缺少整數(shù)或分數(shù) */
字符串文字
Go支持兩種類型的字符串文字,即“”(雙引號樣式)和“”(反引號)。
字符串可以級聯(lián)以+和+ =運算符。
字符串包含與字符字面量相似的字符:純字符,轉義序列和通用字符,這是無類型的。
字符串類型的零值是空白字符串,可以用或以文字表示。 " " ''
通過使用==,!=和(用于比較相同類型)等運算符,可比較字符串類型
語法
type _string struct { elements *byte // 底層字節(jié) len int //字節(jié)數(shù) }
顯示字符串文字的示例:
"hello, nhooo"
"hello, \
nhooo"
"hello, " "geeks" "forgeeks"
在這里,以上所有三個語句都是相似的,即它們沒有任何特定的類型。
例:
package main import "fmt" func main() { const A= "GFG" var B = "nhooo" //拼接字符串 var helloWorld = A+ " " + B helloWorld += "!" fmt.Println(helloWorld) //比較字符串 fmt.Println(A == "GFG") fmt.Println(B < A) }
輸出:
GFG nhooo! true false
布爾常量:
布爾常量類似于字符串常量。它應用與字符串常量相同的規(guī)則,不同之處僅在于它具有兩個未類型化的常量true和false。
package main import "fmt" const Pi = 3.14 func main() { const trueConst = true type myBool bool var defaultBool = trueConst // 允許 var customBool myBool = trueConst // 允許 // defaultBool = customBool // 不允許 fmt.Println(defaultBool) fmt.Println(customBool) }
輸出:
true true