English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이름 " CONSTANTS”에의미는 고정되어 있으며, 프로그래밍 언어에서도 마찬가지입니다. 즉, 상수의 값이 정의되면 더 이상 변경할 수 없습니다. 상수는 어떤 기본 데이터 타입이든 가질 수 있습니다. 예를 들어, 정수 상수, 실수 상수, 문자 상수 또는 문자열 리터럴.
어떻게 선언하나요?
상수는 변수와 같이 선언되지만, 사용const 키워드로 전치하여 특정 유형을 가진 상수를 선언합니다. 사용할 수 없습니다:=문법 선언。
package main import "fmt" const PI = 3.14 func main() { const GFG = "w"3codebox" fmt.Println("안녕하세요", GFG) fmt.Println("행복", PI, "날") const 정확= 참 fmt.Println("고 rules?", 정확) }
출력:
안녕하세요 w3codebox 행복 3.14 날 고 rules? 참
未类型化和类型化的数字常量:
类型化常量的工作方式就像不可变变量只能与相同类型互操作,而未类型化常量的工作方式就像文字常量可以与相似类型互操作。可以在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 /* 八进制 */ 0x4b /* 十六进制 */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */ 212 /* L */ 215u /* L */ 0xFeeL /* L */ 078 /* 非法的:8不是八进制数字 */ 032UU /* 非法的:不能重复后缀 */
复数常量:
复数常量的行为与浮动常量非常相似。它是整数常数(或参数)的有序对 或 实数对,并且该常数用逗号分隔,并且该对包含在括号之间。第一个常数是实部,第二个常数是虚部。复数常量COMPLEX * 8使用8个字节的存储空间。
(0.0, 0.0) (-123.456유효+30, 987.654유효-29)
浮动类型常量:
浮动型常量具有一个整数部分,一个小数点,一个小数部分和一个指数部分。
浮动常量可以用十进制或指数形式表示。
虽然用十进制形式表示,必须包含小数点,指数,或两者兼而有之。
사용할 때, 십진수 형식으로 표현해야 하며, 소수점이나 지수, 또는 둘 다 포함되어야 합니다.및지수
형식을 표현할 때, 정수 부분이나 소수 부분, 또는 둘 다 포함되어야 합니다.
3.14159 /* L */ 314159유효-5이하는 부동형 타입 상수의 예입니다: /* L */ 510유효 /* E */ 210불법: 부분 지수 /* f */ 불법: 소수점이나 지수가 없음55 /* .e */
불법: 정수나 부호가 빠짐
문자열 literal
Go는 두 가지 유형의 문자열 literal을 지원합니다. 즉, ""(중간 quote)와 ""(backtick quote).문자열은쌓기+및+ =연산자.
문자열은 문자 literal과 유사한 문자를 포함합니다: 순수 문자, escape 시퀀스, universal character, 이는 타입이 없습니다.
문자열 타입의 zero value는 공백 문자열입니다. 공백 문자열로 표현할 수 있습니다. " " ''
사용하여==, !=및(동일한 타입 비교를 위해 사용됨) 등 연산자,비교 가능한 문자열 타입
문법
type _string struct { 요소 *byte // 기본 바이트 len int //바이트 수 }
문자열 텍스트 표시 예제:
"hello, w3codebox"
"hello, \
w3codebox"
"hello, " "geeks" "forgeeks"
여기서는 위의 세 가지 문장 모두 유사합니다. 즉, 특정 타입이 없습니다.
예:
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라는 두 개의 타입이 없는 상수만 가지고 있다는 점입니다.
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