InfluxDB源码修改,GO语言的一个小问题,config.go的使用

callELPSYCONGROO · 2018-06-05 11:10:58 · 1045 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-06-05 11:10:58 的主题,其中的信息可能已经有所发展或是发生改变。

各位大神,请问有没有研究过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里面的默认值


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1045 次点击  
加入收藏 微博
4 回复  |  直到 2018-06-05 11:45:13
ggsimida
ggsimida · #1 · 7年之前

配置文件是配置文件,结构体是结构体,你要读配置文件可以网上搜下现成代码,然后new个结构体放进去,没必要一开始就纠结在一起

callELPSYCONGROO
callELPSYCONGROO · #2 · 7年之前
ggsimidaggsimida #1 回复

配置文件是配置文件,结构体是结构体,你要读配置文件可以网上搜下现成代码,然后new个结构体放进去,没必要一开始就纠结在一起

嗯,源码里面使用config.go全是在新的结构体里面定义一个成员 config *Config,这样默认使用的是本包里面的config.go中定义的结构体吗?

config.go里结构体定义Enabled bool toml:"enabled"的时候,最后一个参数toml:"enabled"这个是不是就是使用的配置文件中的值?

因为我之前开发Java的,没搞懂这个是如何传值进入这个结构体的构造函数的。

ggsimida
ggsimida · #3 · 7年之前

结构体使用和在哪里定义没有关系,在别的包使用只要 包名.结构体名 就行了。后面的toml:"enabled"参数,你可以看下这个https://www.cnblogs.com/ghj1976/p/4082323.html

callELPSYCONGROO
callELPSYCONGROO · #4 · 7年之前
ggsimidaggsimida #3 回复

结构体使用和在哪里定义没有关系,在别的包使用只要 包名.结构体名 就行了。后面的toml:"enabled"参数,你可以看下这个https://www.cnblogs.com/ghj1976/p/4082323.html

噢~ 了解了 :smile: 非常感谢!

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传