go 언어에는 포인터가 있습니다. go 언어에서 포인터를 사용하면 간단히 몇 가지 작업을 수행할 수 있습니다. 포인터 형식의 선언 구문은 "var var_name *var-type"입니다. 여기서 "var-type" 매개변수는 포인터 유형이고 " var_name" "은 포인터 변수의 이름이고 * 기호는 해당 변수가 포인터로 사용됨을 지정하는 데 사용됩니다.
이 기사의 데모 환경: Windows 7 시스템, Go1.11.2 버전, Dell G3 컴퓨터.
Go 언어에는 포인터가 있습니다.
Go 언어에서 포인터를 사용하면 일부 작업을 더 쉽게 수행할 수 있습니다.
우리 모두는 변수가 컴퓨터 메모리 주소를 참조하는 데 사용되는 편리한 자리 표시자라는 것을 알고 있습니다.
Go 언어의 주소 가져오기 문자는 &입니다. 변수 앞에 사용하면 해당 변수의 메모리 주소가 반환됩니다.
다음 예제는 메모리에 있는 변수의 주소를 보여줍니다.
예제
package main import "fmt" func main() { var a int = 10 fmt.Printf("变量的地址: %x\n", &a ) }
위 코드를 실행한 결과는 다음과 같습니다.
变量的地址: 20818a220
이제 우리는 메모리 주소가 무엇인지, 어떻게 액세스하는지 이해했습니다. 다음으로 포인터를 자세히 소개하겠습니다.
포인터란 무엇인가요?
포인터 변수는 값의 메모리 주소를 가리킵니다.
변수 및 상수와 유사하게 포인터를 사용하기 전에 선언해야 합니다. 포인터 선언 형식은 다음과 같습니다.
var var_name *var-type
var-type은 포인터 유형, var_name은 포인터 변수 이름, * 기호는 변수가 포인터로 사용됨을 지정하는 데 사용됩니다. 다음은 유효한 포인터 선언입니다.
var ip *int /* 指向整型*/ var fp *float32 /* 指向浮点型 */
이 경우 이는 int 및 float32에 대한 포인터입니다.
포인터 사용 방법
포인터 사용 프로세스:
포인터 변수를 정의합니다.
포인터 변수에 값을 할당합니다.
포인터 변수에서 주소를 가리키는 값에 접근합니다.
포인터 유형 앞에 * 기호(접두사)를 추가하면 포인터가 가리키는 내용을 얻을 수 있습니다.
Example
package main import "fmt" func main() { var a int= 20 /* 声明实际变量 */ var ip *int /* 声明指针变量 */ ip = &a /* 指针变量的存储地址 */ fmt.Printf("a 变量的地址是: %x\n", &a ) /* 指针变量的存储地址 */ fmt.Printf("ip 变量储存的指针地址: %x\n", ip ) /* 使用指针访问值 */ fmt.Printf("*ip 变量的值: %d\n", *ip ) }
위 예제의 실행 출력은 다음과 같습니다.
a 变量的地址是: 20818a220 ip 变量储存的指针地址: 20818a220 *ip 变量的值: 20
Go null 포인터
포인터가 정의되고 어떤 변수에도 할당되지 않은 경우 해당 값은 nil입니다.
nil 포인터는 널 포인터라고도 합니다.
nil은 개념적으로 다른 언어의 null, None, nil 및 NULL과 동일하며 모두 0 또는 빈 값을 나타냅니다.
포인터 변수는 일반적으로 ptr로 축약됩니다.
다음 예 보기:
Example
package main import "fmt" func main() { var ptr *int fmt.Printf("ptr 的值为 : %x\n", ptr ) }
위 예의 출력 결과는 다음과 같습니다.
ptr 的值为 : 0
Null 포인터 판단:
if(ptr != nil) /* ptr 不是空指针 */ if(ptr == nil) /* ptr 是空指针 */
더 많은 Go 언어 기술 기사를 보려면 go 언어튜토리얼 열을 방문하세요. !
위 내용은 Go 언어에는 포인터가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!