小编lio*_*ssi的帖子

如何在包中的文件中使用全局var?

我有以下文件结构:

车型/ 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)

pointers database-connection go nullreferenceexception

30
推荐指数
3
解决办法
5万
查看次数

创建跨包可见的常量,可直接访问

我想Error Codes在一个包中定义我的models.

error.go

package models

const{
  EOK = iota
  EFAILED
}
Run Code Online (Sandbox Code Playgroud)

我怎么能在另一个包中使用它们而不用它们作为models.EOK.我想直接使用EOK,因为这些代码在所有包中都是通用的.

这是正确的方法吗?有更好的选择吗?

go

3
推荐指数
1
解决办法
4096
查看次数