Go metodi

Esempio

I metodi di costruzione sono molto simili alle funzioni:

type User struct {
    name string
}

func (u User) Name() string {
    return u.name
}

func (u *User) SetName(newName string) {
    u.name = newName
}

L'unica differenza è l'aggiunta del ricevitore del metodo. Può essere dichiarato come un'istanza del tipo o un puntatore a un'istanza del tipo. Poiché SetName() l'istanza, il ricevitore deve essere un puntatore per effettuare una modifica permanente nell'istanza.

Per esempio:

package main

import "fmt"

type User struct {
    name string
}

func (u User) Name() string {
    return u.name
}

func (u *User) SetName(newName string) {
    u.name = newName
}

func main() {
    var me User

    me.SetName("Slim Shady")
    fmt.Println("My name is", me.Name())
}

Vai al parco giochi