>백엔드 개발 >Golang >Golang 함수 포인터 배열 및 배열 포인터 응용 기술

Golang 함수 포인터 배열 및 배열 포인터 응용 기술

WBOY
WBOY원래의
2023-05-16 16:00:151834검색

Golang 언어의 지속적인 개발로 인해 함수 포인터 배열과 배열 포인터도 Golang 프로그래밍의 중요한 부분이 되었습니다. 이 글에서는 Golang 함수에서 포인터 배열과 배열 포인터의 응용 기술에 대해 논의하고, 실용적인 샘플 코드와 관련 설명을 제공합니다.

Golang 포인터 배열의 기본 개념

먼저 Golang 포인터 배열을 이해해 봅시다. 포인터 배열은 서로 다른 변수나 개체를 가리키는 여러 포인터로 구성된 배열인 데이터 유형입니다. 다음 코드를 사용하여 포인터 배열을 선언할 수 있습니다.

var ptrArr [4]*int

이 코드는 길이가 4인 포인터 배열을 선언합니다. 여기서 각 요소는 int 유형에 대한 포인터입니다. 물론 배열의 길이를 원하는 값으로 설정할 수도 있습니다.

Golang에서는 다음과 같은 방법으로 포인터 배열에 요소를 추가할 수 있습니다.

var p1 = new(int)
var p2 = new(int)
var p3 = new(int)
var p4 = new(int)
ptrArr := [4]*int{p1, p2, p3, p4}

새 함수를 통해 생성된 포인터 변수는 메모리 주소를 할당하고 해당 주소에 대한 포인터를 반환합니다. 따라서 위의 코드는 포인터 배열에 4개의 요소를 추가하며, 각 요소는 int 유형의 변수를 가리킵니다.

포인터 배열의 응용

포인터 배열은 Golang 프로그래밍에 매우 유용하며 다양한 상황에서 사용할 수 있습니다. 다음은 몇 가지 실제 사용 사례입니다.

  1. 포인터 배열을 사용하여 여러 변수에 값을 할당합니다.

여러 변수를 동일한 값으로 설정해야 한다고 가정하면 포인터 배열을 사용하여 이 목적을 달성할 수 있습니다. . 다음 코드는 포인터 배열을 사용하여 int 유형의 여러 변수를 설정하는 방법을 보여줍니다.

var a, b, c, d int
ptrArr := [4]*int{&a, &b, &c, &d}

for _, p := range ptrArr{
  *p = 8
}

fmt.Println(a, b, c, d) //将会输出 "8 8 8 8"

이 예에서는 먼저 int 유형의 변수 4개를 선언한 다음 각 요소가 이 포인터를 가리키는 포인터 배열을 만듭니다. 4개의 변수로. 다음으로 for 루프를 사용하여 이 포인터 배열을 반복하고 각 포인터가 가리키는 값을 8로 설정합니다.

  1. 포인터 배열을 사용하여 다양한 유형의 변수에 값을 할당합니다

이전 예와 다른 점은 이 예에서는 유형이 다른 두 변수를 동일한 값으로 설정해야 한다는 것입니다. 다음 코드는 포인터 배열을 사용하여 문자열 유형의 변수와 int 유형의 변수를 설정하는 방법을 보여줍니다.

var i int
var j string
ptrArr := [2]interface{}{&i, &j}

for _, p := range ptrArr{
  switch t := p.(type) {
   case *int:
     *t = 5
   case *string:
     *t = "Golang"
  }
}

fmt.Println(i, j) //将会输出 "5 Golang"

이 예에서는 길이가 2인 포인터 배열을 사용하며 그 중 하나는 유형의 변수를 가리킵니다. int 포인터, 다른 하나는 문자열 유형 변수에 대한 포인터입니다. for 루프와 switch 문을 통해 이 포인터 배열을 반복하고 각 포인터가 가리키는 값을 해당 값으로 설정합니다.

Golang 배열 포인터의 기본 개념

다음으로 Golang 배열 포인터에 대해 알아봅시다. 배열 포인터는 배열에 대한 포인터입니다. 다음 코드를 사용하여 배열 포인터를 선언할 수 있습니다.

var arrPtr *[4]int

이 예에서는 int 유형의 배열에 대한 포인터를 선언합니다. 이 포인터는 전체 배열을 조작하는 데 사용할 수 있습니다.

배열 포인터 사용

Golang 프로그래밍에서 배열 포인터는 다양한 작업에 사용될 수 있습니다. 다음은 배열 포인터를 사용하는 몇 가지 예입니다.

  1. 배열을 함수에 포인터로 전달

Golang에서 배열과 슬라이스는 모두 값 유형입니다. 즉, 배열을 함수에 전달할 때 함수는 배열의 복사본입니다. 생성됩니다. 함수에 전달된 배열을 수정하려면 배열 포인터를 사용해야 합니다. 다음 코드는 배열 포인터를 사용하여 함수에 배열을 전달하는 방법을 보여줍니다.

func modifyArray(arr *[4]int) {
  arr[0] = 5
  arr[2] = 7
}

var arr [4]int
arrPtr := &arr
modifyArray(arrPtr)
fmt.Println(arr) //将会输出 "[5 0 7 0]"

이 예에서는 먼저 배열과 배열 포인터를 선언합니다. 다음으로, 전달된 배열을 수정하는 adjustArray라는 함수에 배열 포인터를 전달합니다. 수정Array 함수에서는 배열 포인터를 통해 함수 외부의 배열에 접근하여 수정할 수 있습니다.

  1. 배열 포인터를 배열 교체로 사용

일부 시나리오에서는 동일한 목적을 달성하기 위해 배열 포인터가 배열을 대체할 수 있습니다. 다음 코드는 배열 포인터를 사용하여 배열을 조작하는 방법을 보여줍니다.

arrPtr := new([4]int)
for i := 0; i < 4; i++ {
  arrPtr[i] = i + 1
}

for _, v := range arrPtr {
  fmt.Println(v)  //将会输出 "1 2 3 4"
}

이 예에서는 새 함수를 사용하여 새 배열을 할당하고 배열 포인터를 가리킵니다. 일반 배열에 액세스하는 것처럼 이 포인터를 통해 배열의 각 요소에 액세스할 수 있습니다.

결론

이 글에서는 Golang 함수의 포인터 배열과 배열 포인터의 응용 기술을 심도 깊게 살펴봤고, 실용적인 샘플 코드와 관련 설명도 제공했습니다.

포인터 배열과 배열 포인터는 Golang 프로그래밍에서 매우 중요한 도구이며 다양한 시나리오에서 사용될 수 있습니다. 기본 개념과 사용 방법을 이해한다면 Golang 프로그래밍에 더 익숙해질 것입니다.

위 내용은 Golang 함수 포인터 배열 및 배열 포인터 응용 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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