>  기사  >  백엔드 개발  >  golang 슬라이싱에는 make가 필요합니까?

golang 슬라이싱에는 make가 필요합니까?

尚
원래의
2020-01-14 15:36:365051검색

golang 슬라이싱에는 make가 필요합니까?

Slice는 Golang의 특별한 데이터 구조입니다. 이 데이터 구조는 데이터 컬렉션을 사용하고 관리하기가 더 쉽습니다. 슬라이스는 필요에 따라 자동으로 확장 및 축소할 수 있는 동적 배열 개념을 기반으로 구축되었습니다.

make() 함수를 통해 슬라이스 생성

Golang에 내장된 make() 함수를 사용하여 슬라이스를 생성합니다. 이때 슬라이스 길이를 지정하는 매개변수를 전달해야 합니다.

// 创建一个整型切片
// 其长度和容量都是 5 个元素
slice := make([]int, 5)

이때 슬라이스의 길이만 지정하면 슬라이스의 용량과 길이가 동일해집니다. 길이와 용량을 별도로 지정할 수도 있습니다.

// 创建一个整型切片
// 其长度为 3 个元素,容量为 5 个元素
slice := make([]int, 3, 5)

길이와 용량을 별도로 지정하면 생성된 슬라이스와 기본 배열의 길이가 지정된 용량이 되지만, 초기화 후에 모든 배열 요소에 접근할 수 있는 것은 아닙니다.

Golang은 길이보다 작은 용량의 슬라이스 생성을 허용하지 않습니다. 생성된 슬라이스의 용량이 길이보다 작은 경우 컴파일 타임에 오류가 보고됩니다.

// 创建一个整型切片
// 使其长度大于容量
myNum := make([]int, 5, 3)

리터럴

슬라이스를 생성하는 데 일반적으로 사용되는 또 다른 방법은 슬라이스 리터럴을 사용하는 것입니다. 이 방법은 [] 연산자에 값을 지정할 필요가 없다는 점을 제외하면 배열을 생성하는 것과 유사합니다. 초기 길이와 용량은 초기화 중에 제공된 요소 수에 따라 결정됩니다.

// 创建字符串切片
// 其长度和容量都是 3 个元素
myStr := []string{"Jack", "Mark", "Nick"}
// 创建一个整型切片
// 其长度和容量都是 4 个元素
myNum := []int{10, 20, 30, 40}

슬라이스 리터럴을 사용하여 슬라이스를 생성할 때 초기 길이와 용량도 설정할 수 있습니다. 초기화 시 필요한 길이와 용량을 인덱스로 제공하기만 하면 됩니다. 다음 구문은 인덱싱을 사용하여 길이와 용량이 100개 요소인 슬라이스를 만드는 방법을 보여줍니다.

// 创建字符串切片
// 使用空字符串初始化第 100 个元素
myStr := []string{99: ""}

더 많은 Golang 지식을 보려면 golang 튜토리얼 열을 주의하세요.

위 내용은 golang 슬라이싱에는 make가 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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