methodset1.go 482 B

12345678910111213141516171819202122
  1. // methodset1.go
  2. package main
  3. import (
  4. "fmt"
  5. )
  6. type List []int
  7. func (l List) Len() int { return len(l) }
  8. func (l *List) Append(val int) { *l = append(*l, val) }
  9. func main() {
  10. // A bare value
  11. var lst List
  12. lst.Append(1)
  13. fmt.Printf("%v (len: %d)\n", lst, lst.Len()) // [1] (len: 1)
  14. // A pointer value
  15. plst := new(List)
  16. plst.Append(2)
  17. fmt.Printf("%v (len: %d)\n", plst, lst.Len()) // &[2] (len: 1)
  18. }