[Go/gRPC/Protocol Buffer] 크기가 없는 배열 초기화와 slice?
프로그래밍/Go lang2020. 11. 5. 22:37
myArr1 := []int{}
myArr2 := make([]int,0)
var myArr3 []int
위의 코드에서 배열처럼 보이는 것은.. Go에선 배열이 아니라 Slice라고 불린다고 합니다.
음.. 제가 보기에는 Java에서 ArrayList, C++에서 vector 개념을 배열로 표현한 것 같아요.
var myArr3 []int로 하면 myArr3은 아이템이 하나도 없는 상태로 만들어집니다.
아이템을 추가하려면
myArr3 = append(myArr3, 12345)
와 같이 사용한다고 하네요.
append의 리턴값이 사용되는 것이 좀 의아한데 append의 1번째 인자인 slice가 가리키는 공간이 부족한 경우.. 더 넓은 공간을 가리키는 값이 리턴되기 때문에 그런 것 같습니다.
간단하게 말하면 그냥 문법이 저렇기 때문에 저렇게 사용하면 될 것 같습니다.
참고
stackoverflow.com/questions/45317074/best-practices-constructing-an-empty-array
댓글 영역