示例

var r io.Reader = os.Stdin // os.Stdin is of type *os.File which implements io.Readerv := reflect.ValueOf(r) // r is interface wrapping *os.File value
fmt.Println(v.Type())   // *os.Filev2 := reflect.ValueOf(&r)            // pointer passed, will be wrapped in interface{}
fmt.Println(v2.Type())               // *io.Reader
fmt.Println(v2.Elem().Type())        // navigate to pointed: io.Reader (interface type)
fmt.Println(v2.Elem().Elem().Type()) // 2nd Elem(): get concrete value in interface: *os.File

概括:

传入是指针的话,像一种层级递进关系,valueof.type获取的是变量的表面类型,第一次elem.type获取的是此变量的接口类型,再一次就是实际值或类型 ;

非指针传入的话,则.type就是实际类型

go reflect Elem() 深入学习相关推荐

  1. 仿elem页面学习之表单提交的动作

    接上篇 仿elem页面学习之input type=search 搜索地址 当我们在input输入框输入地址,有时候可以不记得准确的店名或地址,这时候我们希望软件能根据搜索关键词给出一些相近的推荐,如上 ...

  2. 对于reflect: Elem of invalid type main.User类型的错误解释

    一开始我的代码是这样的 func findTag(str interface{}) {t := reflect.TypeOf(str).Elem()for i := 0; i < t.NumFi ...

  3. Go语言--反射(reflect)

    0 反射的概念 反射是指计算机程序在运行时(runtime)可以访问.检测和修改本身状态或行为的一种能力.通俗地将,反射就是程序能够在运行时动态地查看自己的状态,并且允许修改自身的行为. 程序在编译时 ...

  4. Go 学习笔记(39)— Go 反射

    本文参考 http://c.biancheng.net/golang/reflect/ 反射是把双刃剑,功能强大但代码可读性并不理想,若非必要并不推荐使用反射. 1. 反射概念 反射是指在程序运行期对 ...

  5. Go 语言编程 — reflect 反射机制

    目录 文章目录 目录 为什么需要反射? reflect 包 通过 reflect.TypeOf() 获取对象的反射类型 reflect.Type 通过 reflect.Elem() 获取指针所指向的对 ...

  6. Go语言类库-reflect(反射)

    概述 什么是反射? 反射是计算机程序在运行时可以访问,检查和修改本身状态或者行为的一种能力,大多数编程语言都支持反射.Go语言中,使用反射可以在程序执行过程中更新变量和检查对象的属性,调用对象的方法. ...

  7. Golang的reflect

    文章目录 1. 概述 2. 反射类型对象 3. 反射的值对象 4. 反射修改值 5. 综合Demo 1. 概述 Go语言提供了一种机制,能够在运行时更新变量和检查它们的值.调用它们的方法和它们支持的内 ...

  8. Go语言学习笔记十二(反射的类型对象)

    Go语言的反射 在G语言程序中可以通过reflect包的TypeOf()函数获取任意值的类型对象,程序可以通过类型对象访问任意值的类型信息. package main import ("fm ...

  9. 【学习笔记】Golang语法学习笔记

    一.入门 go是编译型的语言,代码风格类似于C语言,其最大特点是支持并发编程,go文件后缀名为.go 在命令行通过go run helloworld.go来运行,或先通过go build hellow ...

最新文章

  1. Redis详解(八)------ 主从复制
  2. tftp下载内核和文件系统
  3. 【数据结构与算法】数组与链表
  4. python连等号_Python比较2列表和2元组用等号
  5. 【Python】密码生成器
  6. windows多个服务器之间共享文件夹,windows server 2008 R2 部署NFS,实现多台服务器间、客户端间的共享目录。...
  7. php switch正则表达式,switch的用法以及正则表达式简单的用法
  8. Window.location.href命令在JS中跳转无效或自动忽略
  9. 晨风机器人php接口程序_微信之后,QQ也开始封杀机器人了!!!
  10. ADS入门,使用ADS创建和仿真一个简单的线路
  11. JAVA仿百度网盘(JAVA毕业设计)
  12. FFmpeg — 视频剪辑、动静水印、转场特效[gl-transitions]
  13. Kibana启动报错 server is not ready yet的解决方案
  14. 小柯在学JAVA之第二弹
  15. 在ADSP-BF561上使用x264(4):确认热点
  16. php怎么检测数据类型,PHP检测数据类型的几种方法总结和技巧
  17. 英汉《营销学》常用词汇-1
  18. iCoremail企业邮箱移动办公新突破
  19. 崩坏3新版本服务器维护多久,崩坏3V3.5版本10月17日版本更新维护通知
  20. ps2021一键换天空教程,来看看吧

热门文章

  1. out of office ,out of the office,OOO的区别和联系
  2. Dynamics CRM2011自定义框架解决方案
  3. 雷达系统 学习笔记(四)——脉冲多普勒雷达1
  4. 什么是Essay和Article?
  5. python 批量中文数字文件名互转英文阿拉伯数字
  6. 作为一名程序员,如何利用自己的技术去创业和赚钱?
  7. 云知梦php视频教程百度云_php学习笔记(里面是自己看云知梦php视频时的思考和笔记)(一)...
  8. 软件测评师--第14小时 易用性测试
  9. 内码转换表的来源与制作
  10. C# 以管理员权限删除文件