• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

슬라이스 선언시 초기값 관련

19.11.18 13:23 작성 조회수 92

0


var
slice1 []int
slice2 := []int{}

fmt.Println(slice1)
fmt.Println(slice2)

if slice1 == nil {
fmt.Println("slice1 is nil")
}

if slice2 == nil {
fmt.Println("slice2 is nil")
}

실행결과
[] [] slice1 is nil

질문
slice2는 널이 아닌 무슨 값이 들어가 있는건지요?
답변 부탁 드리겠습니다.

답변 1

답변을 작성해보세요.

0

네 안녕하세요.

상당히 어려운 질문이고 열심히 하셨다는 생각이 듭니다.

좋은 질문 다시 한 번 감사드립니다.

2번은 슬라이스 리터럴 이므로 nil이 참조 되지 않습니다.

즉, make([]int, 0) 구문이 실행되었다고 생각하시면 됩니다.

지금 하신 질문이 Golang 개발자분들이 혼동하고 있고 어려운 부분이라고 생각합니다.

아래 링크를 참조해 보세요(번역 이용)

https://stackoverflow.com/questions/42795382/whats-the-difference-between-makeint-0-int-and-newint