English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 기본 강의

Golang 제어 문

Golang 함수 & 메서드

Golang 구조체

Golang 슬라이스 & 배열

Golang 문자열(String)

Golang 포인터

Golang 인터페이스

Golang 동기

Golang 예외(Error)

Golang 다른杂项

Go 언어 상수

이름 " 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.Secondmath.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