我有以下文件结构:
车型/ db.go
type DB struct {
*sql.DB
}
var db *DB
func init() {
dbinfo := fmt.Sprintf("user=%s password=%s dbname=%s sslmode=disable",
DB_USER, DB_PASSWORD, DB_NAME)
db, err := NewDB(dbinfo)
checkErr(err)
rows, err := db.Query("SELECT * FROM profile")
checkErr(err)
fmt.Println(rows)
}
func NewDB(dataSourceName string) (*DB, error) {
db, err := sql.Open("postgres", dataSourceName)
if err != nil {
return nil, err
}
if err = db.Ping(); err != nil {
return nil, err
}
return &DB{db}, nil
}
Run Code Online (Sandbox Code Playgroud)
车型/ db_util.go
func (p *Profile) …Run Code Online (Sandbox Code Playgroud) 我想Error Codes在一个包中定义我的models.
error.go
package models
const{
EOK = iota
EFAILED
}
Run Code Online (Sandbox Code Playgroud)
我怎么能在另一个包中使用它们而不用它们作为models.EOK.我想直接使用EOK,因为这些代码在所有包中都是通用的.
这是正确的方法吗?有更好的选择吗?