// pointer_value.go
package main

import (
	"fmt"
)

type B struct {
	thing  int
}

func (b *B) change() {  b.thing = 1 }

func (b B) write() string { return fmt.Sprint(b) }

func main() {
	  var b1 B  // b1 is value
      b1.change()
      fmt.Println(b1.write())

      b2 := new(B)  // b2 is pointer
      b2.change()
      fmt.Println(b2.write())
}
/* Output:
{1}
{1}
*/
