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")