lab-development-imb/web/07/demos/00_method_receiver.go

27 lines
440 B
Go

package main
import "fmt"
type Person struct {
Name string
Age int
}
// Wert-Receiver: arbeitet auf einer Kopie
func (p Person) Greet() {
fmt.Println("Hallo,", p.Name)
}
// Zeiger-Receiver: kann das Original ändern
func (p *Person) Birthday() {
p.Age++
}
func main() {
a := Person{Name: "Karl", Age: 30}
a.Greet() // Ausgabe: Hallo, Karl
a.Birthday() // Alter wird erhöht
fmt.Println(a.Age) // Ausgabe: 31
}