자바스크립트를 활성화 해주세요

Tucker의 Go 언어 프로그래밍 8장 요약

 ·  ☕ 1 min read

Tucker의 Go 언어 프로그래밍스터디 요약 노트입니다.

8장. 상수

상수의 필요성, 상수 등은 이미 알고 있으니, Go 언어에서의 특징만 확인해보자.

타입 있는 vs 타입 없는

타입 있는 상수는 C/C++에서 const으로 정의된 형태의 상수와 같은 효과라고 볼 수 있다.

  • 상수를 사용할 때 타입 검사가 이루어진다.
  • 메모리 위에 해당 상수가 존재한다.

타입 없는 상수는 C/C++에서 #define으로 정의된 형태의 상수와 같은 효과라고 볼 수 있다.

  • 해당 상수는 문자열 값 그대로 치환된다.
  • 메모리 위에 해당 상수가 존재하지 않을 수도 있다.

iota

C/C++의 enum과 비슷한 용도로 사용하는데, 수식에 활용될 수 있어서 좀 더 간편하게 다양한 형태의 상수 정의에 활용될 수 있다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
package main

import "fmt"

const (
	FLAG_ALPHA = 1 << iota
	FLAG_BRABO
	FLAG_CHARLIE
)

func main() {
	fmt.Println(FLAG_ALPHA, FLAG_BRABO, FLAG_CHARLIE)
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#include <stdio.h>

enum {
	FLAG_ALPHA = 1 << 1,
	FLAG_BRABO = 1 << 2,
	FLAG_CHARLIE = 1 << 3
};

int main(void) {
	printf("%d %d %d\n", FLAG_ALPHA, FLAG_BRABO, FLAG_CHARLIE);
}

저자 강의


JaeSang Yoo
글쓴이
JaeSang Yoo
The Programmer

목차