English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
名前からも分かるように、 CONSTANTS”が意味は固定であり、プログラミング言語でも同じです。つまり、定数の値が一旦定義されると、それを変更することはできません。定数はどんな基本データ型でも持つことができます。例えば、整数定数、浮動小数点定数、文字定数、または文字列リテラルなどです。
どう宣言しますか?
定数は変数のように宣言されますが、const キーワードとして接頭辞として特定の型を持つ定数を宣言するために使用されます。以下を使用することはできません:=文法宣言。
package main import "fmt" const PI = 3.14 func main() { const GFG = "w3codebox" fmt.Println("Hello", GFG) fmt.Println("Happy", PI, "Day") const 正しい = true fmt.Println("Goルール?", 正しい) }
出力:
Hello w3codebox Happy 3.14 Day Goルール?
未类型化和类型化的数字常量:
类型化常量的工作方式就像不可变变量只能与相同类型互操作,而未类型化常量的工作方式就像文字常量可以与相似类型互操作。可以在Go中使用或不使用类型来声明常量。下面的示例显示已命名和未命名的类型化和未类型化的数字常量。
const untypedInteger = 123 const untypedFloating typed = 123.12 const typedInteger int = 123 const typedFloatingPoint float64 = 123.12
以下是Go语言中的常量列表:
数值常量(整数常量,浮点常量,复数常量)
字符串字面量
布尔常量
数值常量:
数值常量是高精度值。Go是一种静态类型的语言,不允许混合数字类型的操作。您不能将float64添加到int,甚至不能将int32添加 到int。虽然,写1e6 * time.Second 或math.Exp(1)甚至 1 <<('\ t'+ 2.0) 都是合法的。在Go中,常量与变量不同,其行为类似于常规数字。
数值常量可以是3种,即整数,浮点数,复数
整数常量:
前缀指定基数:十六进制为0x或0X,八进制为0,十进制为0。
整数字面量也可以具有后缀,分别是U(大写)和L(大写)的组合,分别表示无符号和长整数。
它可以是十进制,八进制或十六进制常量。
一个int最多可以存储64位整数,有时更少。
以下是整数常量的一些示例:
85 /* decimal */ 0213 /* octal */ 0x4b /* 十六进制 */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */ 212 /* 有効 */ 215u /* 有効 */ 0xFeeL /* 有効 */ 078 /* 非法的:8不是八进制数字 */ 032UU /* 非法的:不能重复后缀 */
复数常量:
复数常量的行为与浮点常量非常相似。它是整数常数(或参数)的有序对 或 实数对,并且该常数用逗号分隔,并且该对包含在括号之间。第一个常数是实部,第二个常数是虚部。复数常量COMPLEX * 8使用8个字节的存储空间。
(0.0, 0.0) (-123.456E+30, 987.654E-29)
浮动类型常量:
浮点型常量具有一个整数部分,一个小数点,一个小数部分和一个指数部分。
浮点常量可以用十进制或指数形式表示。
虽然十進形式で表す必要があります。小数点、指数、またはその両方を含む必要があります。
そして、使用する際には、十進形式で表す必要があります。小数点、指数、またはその両方を含む必要があります。指数形式を表す場合、整数部分、小数部分、またはその両方を含む必要があります。
以下は浮動小数点型定数の例です:
3.14159 /* 有効 */ 314159E-5L /* 有効 */ 510E /* 無効:不完成な指数 */ 210f /* 無効: 小数または指数がありません */ .e55 /* 無効:整数または分数が欠けています */
文字列リテラル
Goは「」(ダブルクォート)と「」(バッククォート)の2種類の文字列リテラルをサポートしています。
文字列は連結で+および+ =演算子。
文字列は文字リテラルに似た文字を含んでいます:純文字、エスケープシーケンス、およびユニコード文字、これは無型です。
文字列型のゼロ値は空白文字列であり、空白文字列として表示できます。 " " ''
を使用して==,!=および(同じ型の比較に使用される)などの演算子、比較可能な文字列型
文法
type _string struct { 要素 *byte // 下層バイト len int //バイト数 }
文字列リテラルの表示例:
"hello, w3codebox"
"hello, \
w3codebox"
"hello, " "geeks" "forgeeks"
ここでは、上記の3つの文はすべて似ています。つまり、特定の型を持っていません。
例:
package main import "fmt" func main() { const A= "GFG" var B = "w3codebox" //文字列の結合 var helloWorld = A+ " " + B helloWorld += "!" fmt.Println(helloWorld) //文字列の比較 fmt.Println(A == "GFG") fmt.Println(B < A) }
出力:
GFG w3codebox! true false
ブール定数:
ブール定数は文字列定数に似ています。それらは同じルールが適用されますが、trueとfalseという2つの未型付けの定数を持っているという点で異なります。
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