Junior — Middle
Kā Golang valodā tiek īstenots elementu pārraidīšana starp funkcijām un struktūrām?
sobes.tech AI
Atbilde no AI
Go valodā elementu nodošana starp funkcijām un struktūrām var tikt veikta divos galvenajos veidos: pēc vērtības un pēc norādītāja.
- Pēc vērtības: paņemta pati struktūra vai mainīgais, izmaiņas funkcijas iekšienē neietekmē oriģinālu.
- Pēc norādītāja: tiek nodots struktūras vai mainīgā adrese, kas ļauj funkcijai mainīt oriģinālos datus.
Piemērs:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func updateByValue(p Person) {
p.Age = 30 // tikai kopija mainīsies
}
func updateByPointer(p *Person) {
p.Age = 30 // oriģināls mainīsies
}
func main() {
person := Person{Name: "Ivan", Age: 25}
updateByValue(person)
fmt.Println(person.Age) // 25
updateByPointer(&person)
fmt.Println(person.Age) // 30
}
Ja vēlaties mainīt datus funkcijas iekšienē, nododiet norādītāju uz struktūru. Ja izmaiņas nav nepieciešamas, varat nodot pēc vērtības.