内容纲要

[go]
package main

import (
"fmt"
"reflect"
)

func main() {

type message struct {
X int
Y int
Label string
}

p1 := message{23, 12, "A Message"}
p2 := message{}
p2.Label = "Message 2"

s1 := reflect.ValueOf(&p1).Elem()
s2 := reflect.ValueOf(&p2).Elem()
fmt.Println("S2= ", s2)

typeOfT := s1.Type()
fmt.Println("P1=", p1)
fmt.Println("P2=", p2)

for i := 0; i < s1.NumField(); i++ {
f := s1.Field(i)
fmt.Printf("%d: %s ", i, typeOfT.Field(i).Name)
fmt.Printf("%s = %v\n", f.Type(), f.Interface())
}

}

[/go]

[code]
S2= {0 0 Message 2}
P1= {23 12 A Message}
P2= {0 0 Message 2}
0: X int = 23
1: Y int = 12
2: Label string = A Message
[/code]

发表评论

电子邮件地址不会被公开。 必填项已用*标注