【go从入门到精通】反射的限制

你不能做什么?

反射有一个很大的限制。虽然可以使用反射来创建新函数,但无法在运行时创建新方法。这意味着你不能在运行时使用反射来实现接口。这也意味着使用反射来创建新的结构可能会以奇怪的方式中断。当你从结构体字段切片创建新结构体时,通过匿名结构体字段进行交互存在一些问题。

大多数时候,当结构中有一个字段时,需要给它一个名称。在此示例中,我们有两种类型:Foo 和 Bar:


package main
 
import (
    "fmt"
   // "reflect"
)
type Foo struct {
	A int
}

func (f Foo) Double() int {
	fmt.Printf("instance is :%#v", f)
	return f.A * 2
}

type Bar struct {
	Foo
	B int
}

type Doubler interface {
	Double() int
}

func DoDouble(d Doubler) {
	fmt.Println(d.Double())
}

func main() {
	f := Foo{10}

相关推荐

  1. go入门精通限制

    2024-04-25 10:40:02       16 阅读
  2. go入门精通】常量和枚举详解

    2024-04-25 10:40:02       13 阅读
  3. go入门精通】for和for range区别

    2024-04-25 10:40:02       19 阅读
  4. go入门精通】常用标准库用法

    2024-04-25 10:40:02       12 阅读
  5. go入门精通精通并发编程-协程goroutine

    2024-04-25 10:40:02       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 10:40:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 10:40:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 10:40:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 10:40:02       20 阅读

热门阅读

  1. Day2: 5道C++ 面向对象高频题整理

    2024-04-25 10:40:02       14 阅读
  2. Linux常用命令

    2024-04-25 10:40:02       14 阅读
  3. Python搭建http下载服务器

    2024-04-25 10:40:02       15 阅读
  4. 使用Python实现批量删除MYSQL数据库的全部外键

    2024-04-25 10:40:02       15 阅读
  5. Node.js中fs模块实现配置文件的读写

    2024-04-25 10:40:02       11 阅读
  6. 微前端通信机制及其实现

    2024-04-25 10:40:02       12 阅读
  7. css 动画基础知识和案例

    2024-04-25 10:40:02       15 阅读
  8. Mysql 的char 和varchar的的区别

    2024-04-25 10:40:02       14 阅读
  9. CSS基础——2.CSS选择器

    2024-04-25 10:40:02       12 阅读
  10. 机器学习之模糊聚类(Fuzzy Clustering)附代码

    2024-04-25 10:40:02       14 阅读