为什么我不能从其他函数调用init函数,init()只是函数正确,为什么我不能仅调用init函数,我应该更改golang RFC使其实现吗

package main

import (
    "fmt"
)

func init() {
    fmt.Println("Hello, playground")
}

func main() {
    go init()
    fmt.Println("Hello, playground")
}

错误:
./prog.go:12:8: undefined: init

最佳答案

The Go Programming Language Specification

Package initialization

初始化标识符只能用于声明初始化函数,但是
标识符本身未声明。因此,init函数不能是
从程序中的任何地方引用。


要实现目标,请调用一个函数。

例如,

package main

import (
    "fmt"
)

func init() {
    f("init")
}

func f(s string) {
    fmt.Printf("f(%q)\n", s)
}

func main() {
    f("main")
}

游乐场:https://play.golang.org/p/isyrCIeYCV4

输出:
f("init")
f("main")

关于go - 从另一个函数调用init函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57187435/

10-16 06:34