表示init的函数变量

在 Go 中,您可以init在给定的包中定义多个函数,所有这些函数都将在执行之前以未指定的顺序运行。拥有多个此类函数的后果之一是无法在正常代码中调用或识别它们。例如,以下将无法编译:


func main() {

    fmt.Println(init)

}

func init() { }

(参见这里的 Go 游乐场示例)我的问题是 - 能够拥有多个 init 函数有什么好处,如果没有多个 init 函数,我们是否能够引用或调用 init 函数?


catspeake
浏览 199回答 1
1回答

MMMHUHU

能够拥有多个init功能的优势主要在于 IMO 提高了局部性的可读性:如果您必须将所有init功能集中到一个,您可以在正在初始化的东西旁边编写初始化函数,而不是远程编写。顺便说一句,甚至可以在不同的源文件中。获取假设的每个包单个init函数的函数指针也可能被禁止。原因是,在某些情况下,拥有这样的指针将允许init“乱序”调用函数,即。在运行其依赖项之前-init其他包中的其他功能。那会破坏某些保证。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go