为了账号安全,请及时绑定邮箱和手机立即绑定

表示init的函数变量

表示init的函数变量

Go
catspeake 2021-06-03 16:08:14
在 Go 中,您可以init在给定的包中定义多个函数,所有这些函数都将在执行之前以未指定的顺序运行。拥有多个此类函数的后果之一是无法在正常代码中调用或识别它们。例如,以下将无法编译:func main() {    fmt.Println(init)}func init() { }(参见这里的 Go 游乐场示例)我的问题是 - 能够拥有多个 init 函数有什么好处,如果没有多个 init 函数,我们是否能够引用或调用 init 函数?
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

能够拥有多个init功能的优势主要在于 IMO 提高了局部性的可读性:如果您必须将所有init功能集中到一个,您可以在正在初始化的东西旁边编写初始化函数,而不是远程编写。顺便说一句,甚至可以在不同的源文件中。

获取假设的每个包单个init函数的函数指针也可能被禁止。原因是,在某些情况下,拥有这样的指针将允许init“乱序”调用函数,即。运行其依赖项之前-init其他包中的其他功能。那会破坏某些保证


查看完整回答
反对 回复 2021-06-21
  • 1 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信