티스토리 뷰
반응형
Go 언어에서 **상수 (constant)**는 프로그램 실행 중에 절대로 변경되지 않는 값입니다.
예를 들어, 수학에서의 원주율 π처럼 항상 고정된 값을 표현할 때 사용합니다.
Go에서는 상수를 선언할 때 const 키워드를 사용합니다.
Go 언어에서 상수 사용하기
1. 상수 선언 방법
상수는 const
키워드를 사용하여 선언합니다. 선언 후에는 값을 변경할 수 없습니다. 컴파일 타임에 그 값이 결정되므로, 상수는 프로그램의 어느 곳에서도 안전하게 사용할 수 있습니다.
package main
import "fmt"
func main() {
// 정수형 상수 선언
const pi = 3.14
// 문자열 상수 선언
const greeting = "Hello, Go!"
fmt.Println(pi) // 출력: 3.14
fmt.Println(greeting) // 출력: Hello, Go!
}
2. 타입이 있는 상수와 타입이 없는 상수
Go의 상수는 타입이 있는 상수와 타입이 없는 상수로 구분됩니다.
- 타입이 없는 상수는 특별한 타입을 지정하지 않고 선언합니다. 필요에 따라 다양한 타입으로 변환되어 사용할 수 있습니다.
- 타입이 있는 상수는 특정 타입으로 선언되며, 해당 타입으로만 사용될 수 있습니다.
package main
import "fmt"
func main() {
// 타입이 없는 상수
const a = 10
// 타입이 있는 상수
const b int = 20
fmt.Printf("a: %v, Type: %T\n", a, a) // 출력: a: 10, Type: int
fmt.Printf("b: %v, Type: %T\n", b, b) // 출력: b: 20, Type: int
}
3. 상수의 타입 변환
타입이 없는 상수는 사용할 때 자동으로 적절한 타입으로 변환됩니다. 하지만, 타입이 있는 상수는 명시적으로 타입 변환을 해야 합니다.
package main
import "fmt"
func main() {
const x = 10 // 타입이 없는 상수
const y int = 5 // 타입이 있는 상수
// 타입이 없는 상수는 다른 타입의 변수에 대입 가능
var z float64 = x
fmt.Println(z) // 출력: 10
// 타입이 있는 상수는 명시적 변환이 필요
fmt.Println(float64(y)) // 출력: 5
}
4. 열거형 상수와 iota
Go에서는 iota
를 사용하여 열거형 상수를 정의할 수 있습니다. iota
는 0부터 시작하여 하나씩 증가하는 값들을 자동으로 할당해 줍니다.
package main
import "fmt"
func main() {
// iota를 사용한 열거형 상수
const (
Red = iota // 0
Green // 1
Blue // 2
)
fmt.Println(Red, Green, Blue) // 출력: 0 1 2
}
iota
는 상수 선언 블록 내에서만 사용 가능합니다. 각 상수는 이전 상수 값에 1을 더한 값을 가지므로, 반복적으로 증가하는 값이 필요한 경우 간단하게 열거형 상수를 정의할 수 있습니다.
5. 상수의 활용 예시
상수는 프로그램에서 절대 변하지 않는 값을 나타낼 때 사용됩니다. 예를 들어, 물리 상수나 애플리케이션 설정 값 등을 정의할 때 사용합니다.
package main
import "fmt"
func main() {
const Pi = 3.14159
const EarthGravity = 9.8 // 중력 가속도 (m/s^2)
fmt.Printf("Pi: %f\n", Pi)
fmt.Printf("Earth Gravity: %f\n", EarthGravity)
}
요약
- 상수는 변경되지 않는 값을 표현하며,
const
키워드를 사용하여 선언합니다. - 타입이 있는 상수와 타입이 없는 상수로 나눌 수 있으며, 각각의 특성에 맞게 사용됩니다.
iota
를 사용하여 열거형 상수를 정의할 수 있으며, 이로써 반복적인 상수 선언을 간편하게 처리할 수 있습니다.
Go에서 상수는 프로그램의 안전성과 가독성을 높이는 중요한 요소입니다. 변경되지 않는 값들을 상수로 정의하여 코드의 의도를 명확히 하고, 의도치 않은 값 변경을 방지할 수 있습니다.
반응형
'프로그래밍 > golang' 카테고리의 다른 글
go언어에서 패키지, 다른 패키지의 함수 호출하기 (0) | 2024.09.13 |
---|---|
go에서 구조체 초기화 하는 법 (0) | 2024.09.13 |
go에서 배열 초기화 방법에 대해 알아보자 (0) | 2024.09.13 |
go에서 fmt 패키지는 뭘까? (0) | 2024.09.13 |
go언어로 json파싱해보기 (0) | 2024.09.13 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- AI
- MacOS
- Python
- go
- Backend
- react
- 카톡업데이트
- SWiFT
- ChatGPT
- 부동산
- golang
- 내집마련
- 재테크
- HTML
- CSS
- Java
- openai
- 카카오톡
- ios
- Linux
- JavaScript
- 생각
- reactjs
- 부동산분석
- Spring
- 오리역
- 개발자
- Frontend
- 프로그래밍
- WinAPI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함