Go

Go기초 (6) - Arrays and Slices(뭔 차이인고)

로니콜먼 2023. 1. 29. 18:08

Go의 Array는 다른 프로그래밍 언어와 좀 다르다.

 

Go에서 Array를 만들땐 길이를 명시해줘야한다.

5개의 요소를 갖는 array

잘 출력된다.

 

근데 이럴때있음

1. Array 크기를 제한하고 싶거나

2. Array 크기에 상관없이 요소를 추가하고 싶을 수도

그럴때 쓸 수 있는 데이터 타입이 Slice이다.

 

length 명시 없이 그냥 사용해주면 됨

 

오 그럼 추가도 되나?

해보자

잉? 왜이러지

왜냐면 slice에 item을 추가하기 위해 사용하는 함수가 있기때문

그건 바로 append() 함수이다.

 

append 함수에는 두개의 argument(전달인자)가 들어간다.

첫번째 인자는 slice이고,  두번째 인자는 추가하고싶은 값이다.

그러나 append만으로는 바뀐 값을 리턴해줄뿐 slice의 값을 바꿔주지 않음

그래서 직접 names에 대입해야한다.

 

Javascript나 Python을 자주 사용했다면 익숙하지 않은 방식

예시로, Javascript는

arr.push("wow")

위의 코드를 작성하면 array가 수정되어버림.

go는 그렇게 해주지 않음

 

slice의 편리함으로 인해

대부분 array보다는 slice를 위주로 사용하게 될것임.

 

이는, Java에서 배열은 죽고, ArrayList만 주구장창 쓰는 이유와 일맥상통한다.