-2
* sqlx.DBを割り当てることはできません、それは言う:main.goでGolangがエラーを構築:私は私のプロジェクトを構築しようとした際に* sql.DB
./main.go:140: cannot assign *sqlx.DB to db.Conn (type *sql.DB) in multiple assignment
マイ輸入:
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 しかし、なぜ私は相対パスを使うべきではないのですか?今はうまくいきます。 –
パッケージディレクトリ内から 'go build'または' go install'を使っているだけなので、相対パスはおそらくうまく動作します。 goツールがあなたのパッケージを名前で参照する必要があるとき、これは壊れます。タイプがインポートパスで正規化されているので、パッケージ間でタイプを共有する必要があるので、 '。/ config'の' T'は '../config'の' T'タイプとは異なるタイプです。 – JimB