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

golang什么是导入副作用

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

golang什么是导入副作用

当他们说“导入副作用”时,它们实际上是指静态使用的代码/功能。这意味着仅导入软件包将导致一些代码在应用程序启动时执行,从而使我的系统处于与未导入该软件包的状态不同的状态(

init()
例如示例中注册处理程序的代码,它也可能放下config文件,修改光盘上的资源等)。有效的go教程只是为了解释这一点,以说明开发人员可能要进行空白导入的原因。
import_ "somepackageImNotUsingReally"

编辑:当我说

init()
我指的是这种方法时要添加其他上下文;https://golang.org/doc/effective_go.html#init-任何导入的软件包在调用main之前都会调用其init方法。不管有什么
init()
副作用。我认为不可能有其他任何东西,因为常量之类的东西将位于包范围内,而不是全局范围,因此它不会重新定义常量或类似的东西。

EDIT2:如注释中所指出并在上面的init链接中所述,“在包中的所有变量声明都评估了其初始化程序之后,将调用它”,这意味着代码

PackageScopeVar:= unexportedInitializerThatWritesToDisc()
将运行并可能产生副作用。



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

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

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