이 글에서는 GO 언어에서 데이터 구조를 초기화하는 방법을 소개하겠습니다. GO에서는 데이터 구조를 초기화하는 2가지 키워드를 제공하여 어떻게 사용하는지 살펴보겠습니다~ 모두에게 도움이 되길 바랍니다.
GO는 데이터 구조를 초기화하기 위해 2개의 키워드를 제공합니다
하지만 때로는 중괄호를 사용하여 직접 초기화하기도 합니다. 예:
name := []string{"xiaomotong","bob","marry"}
위 상황에서 값은 초기화 중에 채워야 할 데이터가 명확하게 정의되어 있습니다. 그러나 대부분의 경우 직장에서는 초기화 중에 데이터를 알 수 없습니다. . 메소드
make는 내장 데이터 구조를 초기화하는 데 주로 사용됩니다. make로 초기화할 수 있는 데이터 유형은 다음과 같습니다.
슬라이스를 초기화하고 이 두 값 외에 len 값과 cap 값을 채웁니다. 슬라이스의 기본 데이터 구조에는 기본 배열에 대한 포인터도 있습니다.
strs := make([]string, 0, 10)myMap := make(map[string]string, 10)ch := make(chan struct{}, 10)
3가지 유형의 생성 및 초기화를 지원합니다.
설명에 따르면 make
new
Careful Fat Fish는 앞에서 언급한 것처럼 make가 golang에서 제공하는 내장 데이터 구조를 초기화하는 데만 적합하다는 것을 알 수 있습니다. 사용자 정의 데이터 구조의 경우 아직 new
을 사용하면 됩니다. care of thingsnew로 데이터 구조를 초기화하는 것은 다음과 같이 작성할 수 있습니다:
2명의 멤버, 나이, 이름으로 구조를 사용자 정의합니다.
type T struct{ age int name string}func main(){ t := new(T) fmt.Println("t.name == ",t.name) fmt.Println("t.age == ",t.age)}
# go run main.got.name ==t.age == 0
물론 다음과 같이 작성할 수도 있습니다.
func main(){ a := new(int) fmt.Println("a == ",a) fmt.Println("*a == ",*a)}
프로그램 실행 효과
# go run main.goa == 0xc420018078 *a == 0
임을 알 수 있습니다. 새로운 소스코드 설명
golang 소스코드에 따르면 new 첫 번째 매개변수는 값이 아닌 데이터 타입이고, new
따라서 위에서 본 new 의 데이터 구조, 인쇄된 데이터는 모두 해당 타입의 0 값입니다
make 와 new 의 차이점
마지막으로 make 와 make 의 차이점을 정리해 보겠습니다. new는 깊은 인상을 줍니다 make는 내장 데이터 유형을 초기화하는 데에만 사용할 수 있습니다map
*Type
유형인 포인터를 반환합니다. 【관련 추천:위 내용은 GO의 데이터 구조를 초기화하는 방법에 대해 이야기해 보겠습니다. (코드 예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!