各位大神,请问有没有研究过influxdb源码的?
有个GO语言的小问题想请教一下,我是写Java的,GO语言基础了解一些:
我想在源码中添加一个配置选项,比如说,增加一个配置“写入数据时,在控制台打印一句话”,配置文件里面,我新增这样两行:
向源码中influxdb\etc\config.sample.toml文件中添加
[write_my]
enable = true
word = "xxx"
然后新建一个目录influxdb/write_my,新建文件config.go和logger.go。
config.go参考influxdb/services/httpd/config.go
logger参考influxdb/services/httpd/handler.go
// config.go结构体:
type Config struct {
Enabled bool `toml:"enabled"`
Word string `toml:"word"`
}
// 一个函数
func NewConfig() Config {
return Config{Enabled: true, word: "xxx"}
}
这里如果我要使用这个结构体,是如何调用?
例如是这样的吗:write_my.NewConfig(),但是这样是使用的默认值,并不是我配置的那个值 还是说怎么调用?
因为我需要使用我配置文件配置的那个值,而不是使用NewConfig里面的默认值
有疑问加站长微信联系(非本文作者)

配置文件是配置文件,结构体是结构体,你要读配置文件可以网上搜下现成代码,然后new个结构体放进去,没必要一开始就纠结在一起
嗯,源码里面使用config.go全是在新的结构体里面定义一个成员
config *Config
,这样默认使用的是本包里面的config.go中定义的结构体吗?config.go里结构体定义Enabled bool
toml:"enabled"
的时候,最后一个参数toml:"enabled"
这个是不是就是使用的配置文件中的值?因为我之前开发Java的,没搞懂这个是如何传值进入这个结构体的构造函数的。
结构体使用和在哪里定义没有关系,在别的包使用只要 包名.结构体名 就行了。后面的toml:"enabled"参数,你可以看下这个https://www.cnblogs.com/ghj1976/p/4082323.html
噢~ 了解了
非常感谢!