go import package 时,使用的是目录名称和 go.mod 里的 module 名称。

    1. 目录内有 go.mod 文件,则使用 go.mod 里的 module 定义的名称。
    2. 目录内没有 go.mod 文件,则使用 目录名称。

    调用 package 时,使用的是 package 定义的名称和 import 定义的别名。

    go.mod

    1. module github.com/pelletier/go-toml
    2. go 1.12
    3. require (
    4. github.com/BurntSushi/toml v0.3.1
    5. github.com/davecgh/go-spew v1.1.1
    6. gopkg.in/yaml.v2 v2.2.8
    7. )

    定义包

    1. package toml

    导入包

    1. import "github.com/pelletier/go-toml"

    使用包

    1. type Postgres struct {
    2. User string
    3. Password string
    4. }
    5. type Config struct {
    6. Postgres Postgres
    7. }
    8. doc := []byte(`
    9. [Postgres]
    10. User = "pelletier"
    11. Password = "mypassword"`)
    12. config := Config{}
    13. toml.Unmarshal(doc, &config)
    14. fmt.Println("user=", config.Postgres.User)

    参考
    go-toml