Q1.
변수와 상수는 차이를 알겠는데, 상수와 리터럴은 무슨 차이지?
A1.
ChatGPT의 말:
좋아, 이 질문도 진짜 핵심을 찔렀어!
“상수(constant)”와 “리터럴(literal)”은 비슷해 보이지만, 실제로는 개념이 분명히 달라.
✅ 먼저 직관적인 예제부터 보자
const pi = 3.14 // ⬅️ 상수
radius := 5
area := pi * radius * radius
- 3.14는 리터럴
- pi는 상수
그럼 이제 차이를 정리해볼게.
🔍 리터럴(Literal) vs 상수(Constant)
항목리터럴 (Literal)상수 (Constant)
항목 | 리터럴(Literal) | 상수(Constant) |
의미 | 실제 값 그 자체 | 이름이 붙은 고정된 값 |
형태 | 코드에 직접 박아넣은 값 | const 키워드로 선언된 식별자 |
변경 가능 여부 | 변하지 않지만 변수에 바로 들어갈 수도 있음 | 절대 변경 불가 |
사용 위치 | 할당, 연산, 초기화 등 어디든 직접 씀 | 반복 사용하거나 의미 부여 시 |
예시 | 42, "hello", true | const Pi = 3.14 |
📦 예시로 다시 보기
const greeting = "hello" // 상수
name := "world" // 변수
message := greeting + " " + name // greeting은 상수, " "는 리터럴
- " " ← 이건 리터럴
- greeting ← 이건 상수 (리터럴을 이름 붙여서 재사용)
💬 비유적으로 말하면
리터럴은 실제 값이고,
상수는 그 값을 이름 붙여서 의미 있게 만든 것이야.
즉,
- "hello"는 리터럴이고,
- const msg = "hello"는 상수고,
- msg를 쓰면 리터럴을 간접적으로 사용하는 셈이지.
✅ 결론 요약
- 리터럴: 값 그 자체 (3.14, "hello")
- 상수: 그 리터럴에 이름을 붙여서 재사용하거나 의미 부여한 것 (const Pi = 3.14)
필요하면 Go에서 상수를 응용해서 iota 같은 것까지도 확장해서 설명해줄 수 있어!
'프로그래밍 개념 정리' 카테고리의 다른 글
jwt, 엑세스 토큰, 리프레시 토큰 (0) | 2025.04.13 |
---|---|
임시 JWT 비교 (0) | 2025.04.11 |
라이브러리와 패키지, 핸들러 (0) | 2025.04.04 |
리터럴? Literal? literally? (0) | 2025.04.01 |
self 인스턴스와 변수의 스코프 (0) | 2025.04.01 |