各位大神,请问有没有研究过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里面的默认值
结构体使用和在哪里定义没有关系,在别的包使用只要 包名.结构体名 就行了。后面的toml:"enabled"参数,你可以看下这个https://www.cnblogs.com/ghj1976/p/4082323.html
#3
更多评论
嗯,源码里面使用config.go全是在新的结构体里面定义一个成员 `config *Config`,这样默认使用的是本包里面的config.go中定义的结构体吗?
config.go里结构体定义Enabled bool `toml:"enabled"`的时候,最后一个参数`toml:"enabled"`这个是不是就是使用的配置文件中的值?
因为我之前开发Java的,没搞懂这个是如何传值进入这个结构体的构造函数的。
#2