Web/Golang
[Golang Web 개발] 3. Go 기본 문법 정리 - 포인터와 array
brotoo
2021. 9. 15. 11:08
1. 포인터
포인터는 변수에 주소값을 넣는 개념이다.
아래와 같은 코드가 있다. 결과값은 어떻게 나올까?
a := 2
b := a
a = 10
fmt.Println(a, b)
결과 : 10 2
당연하겠지만, b := a라 해도 윗줄에서 포인팅 해준 주소a가 2로 설정되어있어 b = 2이다.
확인 차 &을 써서 주소를 봐보자.
a := 2
b := a
a = 10
fmt.Println(&a, &b)
결과 : 0xc0000140d8 0xc000014100
역시나 다르다.
그러면 포인터로 참조하려면 어떻게 하면 되려나..?
자 이런식으로 c의 포인터 주소값을 넣어주면 된다.
c := 2
d:= &c
c = 10
// 포인터 값의 value를 확인하려면 *붙여서 확인하면 된다.
fmt.Println(c, *d)
그러면 결과는
결과 : 10 10
뒤의 값을 바꿔주는 걸로도 앞의 값을 바꿔줄 수 있다.
e := 2
f := &e
*f = 20
fmt.Println(e)
2. array
array는 기본적으로 이렇게 크기를 설정해주어야한다.
names := [5]string{"1", "2", "3"}
그런데 이렇게 안써도 되고, 파이썬 처럼 그냥 써줘도 된다.
named := []string{"1", "3", "4"}
append도 사용가능하다.
named = append(named, "5")