-2
當我嘗試建立我的項目,它說:Golang建立自己的錯誤:無法分配* sqlx.DB爲* sql.DB
./main.go:140: cannot assign *sqlx.DB to db.Conn (type *sql.DB) in multiple assignment
我進口main.go:
import (
"html/template"
"io/ioutil"
"net/http"
"regexp"
"./network"
"log"
"./config"
"./db"
"fmt"
"github.com/jmoiron/sqlx"
)
我db.go是:
package db
import "database/sql"
import _ "github.com/go-sql-driver/mysql"
var Conn *sql.DB
var Err error
而且從main.go第140行:
db.Conn, db.Err = sqlx.Open(config.Db.Type, config.Db.User+":"+config.Db.Pass+"@/"+config.Db.Name)
感謝您的幫助。
是的,'sql.DB'和'sqlx.DB'是不同的類型。另一方面,不要使用相對路徑導入。它們在大多數情況下不起作用,只能在GOPATH之外進行快速測試。始終使用完整的導入路徑。 – JimB
謝謝。這太容易了:D 但爲什麼我不應該使用相對路徑?現在工作正常。 –
相對路徑可能正常工作,因爲您只使用package目錄中的'go build'或'go install'。這在打包工具需要按名稱引用包時會中斷。它也打破了你需要在包之間共享類型的原因,因爲類型是通過它們的導入路徑進行規範化的,所以從'./config'輸入'T'與'../ config'類型'T'的類型不同。 – JimB