在同包中定义了一个sql.DB指针全局变量, 并在Init方法中将其赋值, 可是在同包中使用这个变量的时候, 却被告知变量为nil, 请问造成这种问题的原因是什么呢? 应该如何解决较为妥善一点呢?
model.go
package db
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func Init() {
db, err := sql.Open("mysql", "root@kong@tcp(127.0.0.1:3306)/blog")
if err != nil {
fmt.Println(err)
}
db.SetMaxIdleConns(50)
db.Ping()
}
demo.go
package db
import "fmt"
func Print() {
fmt.Println(db)
}
main.go
package main
func main() {
db.Init()
db.Print()
}
结果:
<nil>