Go Méthodes de chaînage


Exemple

Avec les méthodes de golang, vous pouvez utiliser la méthode "chaînant" en passant le pointeur à la méthode et en renvoyant le pointeur sur la même structure comme ceci:

package main

import (
    "fmt"
)

type Employee struct {
    Name string
    Age  int
    Rank int
}

func (empl *Employee) Promote() *Employee {
    fmt.Printf("Promoting %s\n", empl.Name)
    empl.Rank++
    return empl
}

func (empl *Employee) SetName(name string) *Employee {
    fmt.Printf("Set name of new Employee to %s\n", name)
    empl.Name = name
    return empl
}

func main() {

    worker := new(Employee)

    worker.Rank = 1

    worker.SetName("Bob").Promote()

    fmt.Printf("Here we have %s with rank %d\n", worker.Name, worker.Rank)

}

Sortie:

Set name of new Employee to Bob
Promoting Bob
Here we have Bob with rank 2