Go Methods Chaining methods


With methods in golang you can do method "chaining" passing pointer to method and returning pointer to the same struct like this:

package main

import (

type Employee struct {
    Name string
    Age  int
    Rank int

func (empl *Employee) Promote() *Employee {
    fmt.Printf("Promoting %s\n", empl.Name)
    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


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



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