- 用在import里面,执行引入包的init函数并初始化变量而不使用包的其他函数。如:
main.go文件
package main
import (
_ "GolandProjects/test/pkg"
)
func main(){
}
pkg/test.go文件
package pkg
import "fmt"
var a = 10
func init(){
fmt.Prinln("a:", a)
}
执行,输出:
a:10
- 用在接收变量赋值,省略某个值,如下,将会省略test函数返回的值
_ = test()
func test() string {
return fmt.Sprintf("测试")
}
- 用在接收接口赋值,类似断言功能,避免编译器报错,如下,只有T实现了I接口才能编译通过
type I interface{
func Test() string
}
type T struct{
}
func (t T) Test() string {
return "测试"
}
var (
_ I = T{}
)