Go에서는 참조 유형 변수를 전달할 때 참조에 의한 전달이 발생합니다. 여기서 * 기호는 참조 유형을 나타냅니다. 참조 유형 변수를 전달할 때 실제로 전달되는 것은 원래 값을 가리키는 주소입니다. 참조 유형 변수를 수정하면 원래 값에 영향을 미칩니다.
Go 언어에서 참조에 의한 전달 이해하기
소개
Go 언어에서 변수는 값 유형과 참조 유형이라는 두 가지 유형의 값을 저장할 수 있습니다. 값 유형은 실제 값을 저장하고, 참조 유형은 실제 값을 가리키는 주소를 저장합니다. 참조별 전달은 참조 유형의 변수가 전달될 때 발생합니다.
참조 전달에 대한 기본 지식
Go 언어에서는 *
기호를 사용하여 참조 유형을 나타냅니다. 예: *
符号来表示一个引用类型。例如:
type Point struct { x int y int } func main() { var p1 = Point{1, 2} }
在上面的代码中,p1
是一个对 Point
结构的引用。当您传递一个引用类型的变量时,您实际上是在传递指向原始值的地址。
实战案例
考虑以下示例:
func changePoint(p *Point) { p.x = 10 p.y = 20 } func main() { var p1 = Point{1, 2} changePoint(&p1) fmt.Println(p1) // 输出:{10 20} }
在 changePoint
函数中,我们通过指针接收了一个对 Point
结构的引用。然后,我们修改了指针引用的实际值。由于我们已经修改了原始值,因此在 main
函数中打印 p1
rrreee
p1
은 Point
구조에 대한 참조입니다. 참조 유형의 변수를 전달하면 실제로 주소가 원래 값으로 전달됩니다. 실용 예제
changePoint
함수에서는 포인터를 통해 Point
구조에 대한 참조를 받습니다. 그런 다음 포인터 참조의 실제 값을 수정합니다. 원래 값을 수정했으므로 main
함수에서 p1
을 인쇄하면 업데이트된 값이 표시됩니다. 위 내용은 Go 언어에서 참조로 전달 이해하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!