차이점: 1. 슬라이스는 포인터 유형이고 배열은 값 유형입니다. 2. 배열의 길이는 고정되어 있지만 슬라이스는 고정되어 있지 않습니다(슬라이스는 동적 배열로 간주될 수 있음). 3. 슬라이스에는 용량(cap) 속성이 하나 더 있습니다. 4. 슬라이스의 맨 아래 레이어는 배열입니다.
이 기사의 운영 환경: windows10 시스템, Go 1.11.2, thinkpad t480 컴퓨터.
관련 권장 사항: "go tutorial"
다음 코드는 무엇을 출력합니까? 댓글이 삭제되면 어떻게 출력되나요?
package main import ( "fmt" ) func main() { a := [2]int{5, 6} b := [2]int{5, 6} if a == b { fmt.Println("equal") } else { fmt.Println("not equal") } /* if a[:] == b[:] { fmt.Println("equal") } else { fmt.Println("not equal") } */ }
출력:
equal
댓글 프롬프트 제거:
invalid operation: a[:] == b[:] (slice can only be compared to nil)
설명:
Go 언어에서 배열과 슬라이스의 차이점
● 슬라이스는 포인터 유형, 배열은 값 유형
● 길이 배열은 고정되어 있지만 슬라이스는 그렇지 않습니다(슬라이스는 동적 배열입니다)
● 슬라이스에는 배열보다 하나 이상의 속성이 있습니다: 용량(캡)
● 슬라이스의 맨 아래 레이어는 배열입니다
따라서 a와 b는 배열 유형을 정의합니다. , 그리고 배열 비교는 동일합니다
다만, a[:]와 b[:]는 슬라이스이고, 슬라이스 간에 동등성 판단은 할 수 없고, nil로만 판단할 수 있습니다
더 많은 프로그래밍 관련 지식을 원하시면, 방문해주세요: 프로그래밍 교육! !
위 내용은 Go 언어에서 배열과 슬라이스의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!