从另一个函数调用init函数

why i can't call init function from the other function, init() is just function right, why i can't just call the init function, should i change golang RFC to make it happend

package main

import (
    "fmt"
)

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

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

error :

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

The Go Programming Language Specification

Package initialization

the init identifier can be used only to declare init functions, yet the identifier itself is not declared. Thus init functions cannot be referred to from anywhere in a program.


To accomplish your objective, call a function.

For example,

package main

import (
    "fmt"
)

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

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

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

Playground: https://play.golang.org/p/isyrCIeYCV4

Output:

f("init")
f("main")

init can not called, it will run when package loaded.

package main

import (
    "fmt"
)

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

result: Hello, playground