Back to questions
Junior — Middle
85
Каким образом реализуется передача элементов между функциями и структурами в языке Golang?
Answer from AI
sobes.tech AI
В Go передача элементов между функциями и структурами может осуществляться двумя основными способами: по значению и по указателю.
- Передача по значению: копируется сама структура или переменная, изменения внутри функции не влияют на оригинал.
- Передача по указателю: передается адрес структуры или переменной, что позволяет функции изменять исходные данные.
Пример:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func updateByValue(p Person) {
p.Age = 30 // изменится только копия
}
func updateByPointer(p *Person) {
p.Age = 30 // изменится оригинал
}
func main() {
person := Person{Name: "Ivan", Age: 25}
updateByValue(person)
fmt.Println(person.Age) // 25
updateByPointer(&person)
fmt.Println(person.Age) // 30
}
Таким образом, если нужно изменить данные внутри функции, передают указатель на структуру. Если же изменения не нужны, можно передавать по значению.