Go

Go 데이터 구조

Arrays, slices, maps, structs, pointers, make vs new, nil 값

20 면접 질문·
Junior
1

Go의 slice란 무엇입니까?

답변

slice는 기반이 되는 array에 대한 동적 뷰로, 가변 길이의 요소 시퀀스를 다룰 수 있게 해줍니다. 컴파일 시점에 고정 크기가 정해지는 array와 달리, slice는 append 같은 연산을 통해 동적으로 커지거나 줄어들 수 있습니다. 이러한 유연성 덕분에 slice는 동질적인 요소 컬렉션을 저장하기 위해 Go에서 가장 많이 사용되는 순차 데이터 구조입니다.

2

Go에서 array와 slice의 주요 차이점은 무엇입니까?

답변

근본적인 차이는 크기에 있습니다. array는 컴파일 시점에 정해지는 고정 크기를 가지며 타입 자체의 일부인 반면, slice는 런타임에 변할 수 있는 동적 크기를 가집니다. 이 차이로 인해 크기가 다른 두 array는 호환되지 않는 타입으로 간주되지만, 같은 요소 타입의 모든 slice는 호환됩니다. 따라서 slice가 더 유연하며 현대 Go 코드에서 더 흔히 사용됩니다.

3

Go에서 빈 slice를 어떻게 생성합니까?

답변

빈 대괄호 뒤에 빈 중괄호를 쓰는 리터럴 구문은 초기화된 빈 slice를 만드는 관용적인 방법입니다. 이 방식은 길이가 0이지만 nil이 아닌 slice를 생성하여 append로 요소를 받을 준비가 되어 있습니다. nil slice가 되는 단순 선언과 달리, 이 명시적 초기화는 요소를 추가할 때 예상치 못한 동작의 위험 없이 즉시 사용 가능한 slice를 보장합니다.

4

특정 용량으로 slice를 초기화하려면 어떤 함수를 사용해야 합니까?

5

용량에 도달한 slice에 요소를 추가하면 어떻게 됩니까?

+17 면접 질문

다음 면접을 위해 Go을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기