package main

import "fmt"
import "reflect"

type Age int
func (age Age) CanDrink() bool {
    age++
    return age >= 18
}

func main() {
    var age Age = 11
    
    Age.CanDrink(age)
    // (*Age).CanDrink(age) // cannot use age (type Age) as type *Age in 
argument to (*Age).CanDrink
    (*Age).CanDrink(&age)
    fmt.Println(age) // 11
    
    fmt.Println(reflect.TypeOf(Age.CanDrink)) // func(main.Age) bool
    fmt.Println(reflect.TypeOf((*Age).CanDrink)) // func(*main.Age) bool
}

Why is the parameter of (*Age).CanDrink is a pointer? It is not reasonable.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to