栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Golang-扫描某种类型的所有结构

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang-扫描某种类型的所有结构

简短的答案是:不,那是行不通的

Go是一种严格类型的语言。这使链接器可以省去应用程序未使用的类型定义,方法和函数。

这意味着,除非在某处引用并使用了某个类型(例如struct A),否则将省略该类型。

但是在您的评论中,您提到您不想要类型,而是想要实现接口的任何类型的当前 实例

这也不可能。

另类

我的建议是创建一个全局地图(或切片):

var instMap = map[string]StartStopper

并让每个结构体使用init函数向该映射添加实例,该init函数将在应用程序开始时自动调用:

type A struct {}func init() {    instMap["A"] = new(A)}

然后,当您要启动所有实例时,只需遍历地图并调用Start()

编辑

如果不是每种类型一个实例,而是每种类型都有多个实例,那么每当创建一个新实例时,您都必须将其添加到地图(或切片)中。而且,您将不得不记住当不再使用实例时,将从地图中删除该实例,否则该实例将不会被垃圾收集器处理。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号