登录
首页 >  Golang >  Go问答

获取路径的方法来自哪里?

来源:stackoverflow

时间:2024-02-28 22:27:25 308浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《获取路径的方法来自哪里?》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我想从配置文件获取我的 sqlite 数据库的路径。我怎么能在 go 中做到这一点?

这是我之前写的代码:

database, _ := sql.Open("sqlite3", "C:\\Users\\username\\project\\source.db")

在这种情况下,我的路径直接在代码中“硬编码”。我想设置一个变量,它采用配置数据的路径。


解决方案


我的第一个建议是使用 json 文件而不是 yaml 文件进行配置,因为 go 本身支持它;您不需要使用任何外部包。

type dbconfig struct {
    path string `json:"path"`
}

func loadconfig(path string) (*dbconfig, error) {
    data, err := ioutil.readfile(path)
    if err != nil {
        return nil, err
    }

    var conf dbconfig
    err = json.unmarshal(data, &conf)
    if err != nil {
        return nil, err
    }

    return &conf, nil   
}

我的第二个建议是您将此配置文件的路径作为 flag 传递。您可以在运行应用程序时提供一个标志,如下所示:

$ go build . -o myapp
$ ./myapp --config=path/to/config/file

标志非常强大,允许您轻松配置应用程序,而无需更改太多代码。在 golang 中使用标志很简单。

var configPath = flag.String("config", "", "Path to file containing app config")

只需确保将 flag.parse 添加到 main 函数的顶部即可访问它们。

Here's a full example.

祝你好运!

以上就是《获取路径的方法来自哪里?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>