Sobes.tech
Junior

Как се нарича структурата в Go, която копира данните при предаване?

sobes.tech AI

Отговор от AI

В Go, при предаване структура винаги копира своите данни. Няма специално име за структура, която се държи точно така, това е фундаментално свойство на структурите.

package main

import "fmt"

type Point struct {
	X, Y int
}

func modifyPoint(p Point) {
	// Променяме копието p, не оригиналната структура
	p.X = 10
	p.Y = 20
	fmt.Printf("Вътре във функцията: %v\n", p)
}

func main() {
	pt := Point{X: 1, Y: 2}
	fmt.Printf("Преди извикването на функцията: %v\n", pt)
	modifyPoint(pt)
	fmt.Printf("След извикването на функцията: %v\n", pt) // pt остана непроменен
}