pointer_interface.go 447 B

123456789101112131415161718192021222324252627282930
  1. // nexter.go
  2. package main
  3. import (
  4. "fmt"
  5. )
  6. type nexter interface {
  7. next() byte
  8. }
  9. func nextFew1(n nexter, num int) []byte {
  10. var b []byte
  11. for i := 0; i < num; i++ {
  12. b[i] = n.next()
  13. }
  14. return b
  15. }
  16. func nextFew2(n *nexter, num int) []byte {
  17. var b []byte
  18. for i := 0; i < num; i++ {
  19. b[i] = n.next() // compile error: n.next undefined (type *nexter has no field or method next)
  20. }
  21. return b
  22. }
  23. func main() {
  24. fmt.Println("Hello World!")
  25. }