1. Reflection goes from interface value to reflection Object.

反射可以从接口值得到反射对象

使用到reflect methods:

reflect.ValueOf(i interface{}) Value

reflect.TypeOf(i interface{}) Type

2. Reflection goes from refelction object to interface value.

反射可以从反射对象获得接口值

使用到reflect methods:

reflect.New(typ Type) Value

reflect.Zero(typ Type) Value

func (v Value) Type() Type
func (v Value) Interface() (i interface{})

i.(SomeInterface)


3. To modify a reflection object, the value must be settable.

要修改一个反射对象,则其值必须可以修改

最后补充一条:type 与 value的相互转换及辅助methods

//Type->Value

reflect.New(typ Type) Value

//Value->Type

func (v Value) Type() Type

//PointerValue->Value

func Indirect(v Value) Value

func (v Value) Elem() Value

//Type->PointerType

func PtrTo(t Type) Type

//PointerType->Type

func (t Type) Elem() Type

注意:go的反射还不够强大,相比java,它还不同直接通过class包字符串直接创建对象,即:其不同通过类型名直接构造Type或Value,必须先创建一个类型变量,然后再引出Type或Value变量。不过这个完全可以通过增加一个语法糖解决。

go reflect 3 rules相关推荐

  1. Java IDEA import sun.reflect.ConstructorAccessor报错

    Java IDEA import sun.reflect.ConstructorAccessor报错 问题 解决 问题 报错如下图,发现是jdk版本的原因,如下是jdk: 11.0.6报错截图 解决 ...

  2. ad19电气规则检查_建议收藏Altium Designer Rules规则详解

    对于PCB的设计, AD提供了详尽的10种不同的设计规则,这些设计规则则包括导线放置.导线布线方法.元件放置.布线规则.元件移动和信号完整性等规则.根据这些规则, Protel DXP进行自动布局和自 ...

  3. Golang反射机制的实现分析——reflect.Type方法查找和调用

    在<Golang反射机制的实现分析--reflect.Type类型名称>一文中,我们分析了Golang获取类型基本信息的流程.本文将基于上述知识和经验,分析方法的查找和调用.(转载请指明出 ...

  4. Golang反射机制的实现分析——reflect.Type类型名称

    现在越来越多的java.php或者python程序员转向了Golang.其中一个比较重要的原因是,它和C/C++一样,可以编译成机器码运行,这保证了执行的效率.在上述解释型语言中,它们都支持了&quo ...

  5. Some Rules from wrting your own dsl with ruby

    来自:http://blog.nofail.de/2010/02/writing-your-own-dsl-with-ruby/ Some Rules from wrting your own dsl ...

  6. Golang的反射reflect深入理解和示例

    [TOC] Golang的反射reflect深入理解和示例 [记录于2018年2月] 编程语言中反射的概念 在计算机科学领域,反射是指一类应用,它们能够自描述和自控制.也就是说,这类应用通过采用某种机 ...

  7. 用es6 (proxy 和 reflect)轻松实现 观察者模式

    js中 观察者 之前我们一般通过事件机制完成 ex: 注册监听 Event.listen('changeName', name => console.log(name)) 派发事件 Event. ...

  8. ES6 之Reflect 与 Proxy概述

    Proxy 与 Reflect 是 ES6 为了操作对象引入的 API .Proxy 可以对目标对象的读取.函数调用等操作进行拦截,然后进行操作处理. 概述 Proxy 与 Reflect 是 ES6 ...

  9. Association Rules 关联规则

    Association Rules 关联规则 除了apriori和FPGrowth目前还有那些方法用来发现关联规则? 关键词: 频繁项集,apriori算法,FPGrowth,关联规则, 频繁项集评估 ...

最新文章

  1. 【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read from remote )
  2. 玩英雄联盟手游,谁才是新手最喜欢的英雄?无极剑圣还是吗?
  3. 离散余弦变换原理及实现【转载】
  4. 攻击者滥用 Citrix NetScaler 设备 0day,发动DDoS放大攻击
  5. 理解 JavaScript 的 async/await
  6. kmp 学习【字符串-kmp学习】
  7. java contains_生成不重复随机数 java
  8. wordpress自定义打赏
  9. 计算机应用基础题excel,计算机应用基础EXCEL练习题.doc
  10. 华为手机更改系统默认字体
  11. JDY-24M 超级 BLE 蓝牙模块——理解与实践
  12. pycharm安装jpype报错及解决方法
  13. 计算机编程龟兔赛跑,实例编程:龟兔赛跑的小游戏
  14. PVE最小资源安装Jellyfin(LXC容器使用turnkey-mediaserver模板)
  15. [半监督学习] Combining Labeled and Unlabeled Data with Co-Training
  16. 【损失函数系列】softmax loss损失函数详解
  17. STM32CUBEMX驱动lcd1602,使用的是stm32f103c8t6芯片
  18. C语言求1000以内水仙花数
  19. 【原创】新韭菜日记58--20190618 很久没写了,因为套牢,因为没内容可写
  20. 电子与信息学报 投稿填坑

热门文章

  1. SQL安装中常出现的问题与解决方法
  2. windows常见的加载错误的3个解决办法
  3. 怎么在excel设置下拉菜单
  4. curl批量调用linux,shell的简单批量curl接口脚本
  5. 【转】gsm网络架构、IMSI,MSISDN,SS7读书总结
  6. python 生成随机数的三种方法
  7. Day80.Redis 事物、乐观|悲观锁、秒杀、持久化{RDB|AOF}、主从复制、集群
  8. linux上ant的安装
  9. 【JS】1339- 一文搞懂 JS 原型链的来龙去脉
  10. VMware虚拟机安装centos7 64