1 Star 0 Fork 0

xzplink / Go-Training

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
main.go 797 Bytes
一键复制 编辑 原始数据 按行查看 历史
yanfeizhang 提交于 2020-11-11 18:31 . 基础部分提交
package main
import (
"fmt"
"reflect"
)
type UserId int
func main() {
//1.TypeOf返回的是reflect.Type类型
//1.1 查看TypeOf返回
var a int = 64
t1 := reflect.TypeOf(a) //注意 TypeOf的参数类型是 interface{}
fmt.Printf("type:%v\n", t1.Name()) //type:int
//1.2 区分Type返回值的Name和Kind
var id UserId = 10
t2 := reflect.TypeOf(id)
fmt.Printf("type:%v kind:%v\n", t2.Name(), t2.Kind()) //type:UserId kind:int
//2.ValueOf返回的是reflect.Value类型
//2.1 查看ValueOf返回
var n1 int = 100
v := reflect.ValueOf(n1)
fmt.Println(v.Int())
//2.2 修改ValueOf返回
var n2 int = 100
v2 := reflect.ValueOf(&n2)
fmt.Println(v2) //得到的是一个地址:0xc0000b4048
v2.Elem().SetInt(200)
fmt.Println(n2) //输出200,修改成功!
}
Go
1
https://gitee.com/xzplink/go-training.git
git@gitee.com:xzplink/go-training.git
xzplink
go-training
Go-Training
main

搜索帮助