I have the following Go code (play.golang.org):
package main
import (
"reflect"
"fmt"
)
type User struct {
name string
email string
}
func main() {
uS := User{}
uSt := reflect.TypeOf(uS)
fmt.Println( uSt )
fmt.Println( uSt.NumField() )
// fmt.Println( uS.NumField() ) // this doesn't work, why?
}
I'm just curious here. Why we need to get the type of the struct first before calling NumField()
?
Why can't we just call it on the struct itself i.e. uS.NumField()
?
From docs:
type Value struct {
// contains filtered or unexported fields
}
func (v Value) NumField() int
I'm not quite get what is Value
really means here. I do really appreciate concise explanation and examples.
Aucun commentaire:
Enregistrer un commentaire