-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
슬라이스 선언시 초기값 관련
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는 널이 아닌 무슨 값이 들어가 있는건지요?
답변 부탁 드리겠습니다.
답변을 작성해보세요.
0
좋은사람
지식공유자2019.11.18
네 안녕하세요.
상당히 어려운 질문이고 열심히 하셨다는 생각이 듭니다.
좋은 질문 다시 한 번 감사드립니다.
2번은 슬라이스 리터럴 이므로 nil이 참조 되지 않습니다.
즉, make([]int, 0) 구문이 실행되었다고 생각하시면 됩니다.
지금 하신 질문이 Golang 개발자분들이 혼동하고 있고 어려운 부분이라고 생각합니다.
아래 링크를 참조해 보세요(번역 이용)
https://stackoverflow.com/questions/42795382/whats-the-difference-between-makeint-0-int-and-newint
답변 1