Go中的下划线
1.下划线在import中在Golang里,import的作用是导入其他package,但是今天在看beego框架时看到了import 下划线,不知其意,故百度而解之。 import 下划线(如:import _ hello/imp)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包。即使用【import _ 包路径】只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。 package main
import _ "hello/imp"
func main() {
//imp.Print() //编译报错,说:undefined: imp
}
init.go package imp
import "fmt"
func init() {
fmt.Println("imp-init() come here.")
}
func Print() {
fmt.Println("Hello!")
}
输出结果: imp-init() come here.
2.下划线在代码中package main
import (
"os"
)
func main() {
buf := make([]byte, 1024)
f,_ := os.Open("/Users/samchen/Music/text.txt")
defer f.Close()
for {
n,_ := f.Read(buf)
if n == 0 {
break
}
os.Stdout.Write(buf[:n])
}
解释1:
解释2:
补充: import "database/sql"
import _ "github.com/go-sql-driver/mysql"
第二个import就是不直接使用mysql包,只是执行一下这个包的init函数,把mysql的驱动注册到sql包里,然后程序里就可以使用sql包来访问mysql数据库了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |