我是 Ruby 背景的新手。我试图在没有类的世界中理解代码结构,并且可能犯了一个错误,希望在 Go 中以“Ruby 方式”进行。
我正在尝试重构我的代码以使其更具模块化/可读性,因此我将配置文件的加载移动到了它自己的包中。好主意?
package configuration
import "github.com/BurntSushi/toml"
type Config struct {
Temperatures []struct {
Degrees int
Units string
}
}
func Load() Config {
var cnf Config
_, err := toml.DecodeFile("config", &cnf)
if err != nil {
panic(err)
}
return cnf
}
现在,在我的主包中:
package main
import "./configuration"
var conf Configuration = configuration.Load()
给undefined: Config。我明白为什么。我可以复制主包中的结构定义,但这不是很 DRY。
我的理解是,像这样传递结构体是一种不好的做法,因为它会使您的代码更难理解(现在每个人都需要了解我的 Config 结构体)。
在 Go 中像我试图在这里做的那样将逻辑隐藏在包中是一个好主意吗?如果是这样,传递这个 Config 结构的“Go”方式是什么?
富国沪深
达令说
白衣染霜花
相关分类