>  기사  >  백엔드 개발  >  Go 언어에서 const를 사용하는 방법

Go 언어에서 const를 사용하는 방법

青灯夜游
青灯夜游원래의
2023-01-28 10:54:151727검색

Go 언어에서는 const 키워드를 사용하여 변경되지 않는 데이터를 저장하는 데 사용되는 상수를 정의할 수 있으며, 단일 상수를 정의하는 구문은 "const 상수 이름 = 상수 값"이며 정의하는 구문은 다음과 같습니다. 여러 개의 상수를 일괄적으로 처리하는 방법은 "const (const name 1) =상수값 1 상수 이름 2 =상수값 2...)"입니다. 상수는 함수 내부에 정의된 경우에도 컴파일 타임에 생성되며 부울, 숫자(정수, 부동 소수점 및 복소수) 및 문자열 유형만 가능합니다.

Go 언어에서 const를 사용하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

const 키워드는 Go 언어에서 상수를 정의하는 데 사용됩니다.

상수는 변경되지 않는 데이터를 저장하는 데 사용됩니다. 상수는 함수 내부에 정의되어 있더라도 컴파일 타임에 생성되며 부울, 숫자(정수, 부동 소수점 및 복소수) 및 문자열 유형만 가능합니다. 컴파일 시간 제한으로 인해 상수를 정의하는 식은 컴파일러에서 평가할 수 있는 상수 식이어야 합니다.

상수의 정의 형식은 변수의 선언 구문과 유사합니다. const 이름 [유형] = 값(예:

const pi = 3.14159 // 相当于 math.Pi 的近似值

Go 언어에서는 유형 지정자 [유형]을 생략할 수 있습니다. 왜냐하면 컴파일러가 기반을 결정할 수 있기 때문입니다. 변수 값에 대해 해당 유형을 추론합니다.

  • 명시적 유형 정의: const b string = "abc"const b string = "abc"

  • 隐式类型定义: const b = "abc"

암시적 유형 정의: const b = "abc"

  • Constant 값 컴파일 타임에 결정될 수 있어야 하며 계산 프로세스는 할당 표현식에 포함될 수 있지만 계산에 사용되는 모든 값은 컴파일 타임에 사용 가능해야 합니다.

올바른 접근 방식:
  • const c1 = 2/3

잘못된 접근 방식:

const c2 = getNumber() // 引发构建错误: getNumber() 用做值

변수 선언과 동일하며 여러 상수를 일괄적으로 선언할 수 있습니다.

const (
    e  = 2.7182818
    pi = 3.1415926
)

모든 상수 연산은 컴파일 타임에 완료될 수 있지만 이는 그렇지 않습니다. 런타임 작업을 줄일 뿐 아니라 다른 코드의 컴파일 및 최적화도 용이하게 합니다. 피연산자가 상수인 경우 0으로 정수 나누기, 범위를 벗어난 문자열 인덱스, 무효화를 유발하는 모든 런타임 오류가 컴파일 시간에 발견될 수도 있습니다. 부동소수점 연산 등

모든 산술 연산, 논리 연산 및 상수 간 비교 연산의 결과도 상수입니다. 상수에 대한 유형 변환 연산이나 다음 함수 호출은 상수 결과를 반환합니다: len, cap, real, imag, complex 및 unsafe.Sizeof.

해당 값은 컴파일 타임에 결정되므로 상수는 유형의 일부일 수 있습니다. 예를 들어 배열 유형의 길이를 지정하는 데 사용됩니다.

const IPv4Len = 4
// parseIPv4 解析一个 IPv4 地址 (d.d.d.d).
func parseIPv4(s string) IP {
    var p [IPv4Len]byte
    // ...
}

상수 선언에는 유형과 값도 포함될 수 있지만 if 명시적으로 유형을 지정하지 않으면 오른쪽 표현식에서 유형이 유추됩니다. 다음 코드에서 time.Duration은 명명된 유형이고 기본 유형은 int64이며 time.Minute는 해당 유형의 상수입니다. 아래에 선언된 두 상수는 모두 time.Duration 타입이며, 타입 정보는 %T 매개변수를 통해 출력할 수 있습니다:

const noDelay time.Duration = 0
const timeout = 5 * time.Minute
fmt.Printf("%T %[1]v\n", noDelay)     // "time.Duration 0"
fmt.Printf("%T %[1]v\n", timeout)     // "time.Duration 5m0s"
fmt.Printf("%T %[1]v\n", time.Minute) // "time.Duration 1m0s"
일괄 선언된 상수인 경우, 첫 번째는 생략 가능하며, 초기화 식을 생략한다는 것은 이전 상수의 초기화 식을 사용하는 것을 의미하며 해당 상수 유형도 동일합니다. 예:
const (
    a = 1
    b
    c = 2
    d
)
fmt.Println(a, b, c, d) // "1 1 2 2"
【관련 권장 사항: Go 비디오 튜토리얼

, 🎜프로그래밍 교육🎜】🎜

위 내용은 Go 언어에서 const를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.