>  기사  >  백엔드 개발  >  Go 언어에서 배열과 슬라이스의 차이점은 무엇입니까?

Go 언어에서 배열과 슬라이스의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2020-12-08 17:12:3714433검색

차이점: 1. 슬라이스는 포인터 유형이고 배열은 값 유형입니다. 2. 배열의 길이는 고정되어 있지만 슬라이스는 고정되어 있지 않습니다(슬라이스는 동적 배열로 간주될 수 있음). 3. 슬라이스에는 용량(cap) 속성이 하나 더 있습니다. 4. 슬라이스의 맨 아래 레이어는 배열입니다.

Go 언어에서 배열과 슬라이스의 차이점은 무엇입니까?

이 기사의 운영 환경: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.