生活的道路一旦选定,就要勇敢地走到底,决不回头。

发掘积累过程的快感

首页 » BIBLE模型 » GoLang » gopkg.in/ini.v1 自定义键名和键值映射器

gopkg.in/ini.v1 自定义键名和键值映射器


为了节省您的时间并简化代码,本库支持类型为 NameMapper 的名称映射器,该映射器负责结构字段名与分区名和键名之间的映射。

目前有 2 款内置的映射器:

  • AllCapsUnderscore:该映射器将字段名转换至格式 ALL_CAPS_UNDERSCORE 后再去匹配分区名和键名。
  • TitleUnderscore:该映射器将字段名转换至格式 title_underscore 后再去匹配分区名和键名。

使用方法:

type Info struct {
    PackageName string
}

func main() {
    err = ini.MapToWithMapper(&Info{}, ini.TitleUnderscore, []byte("package_name=ini"))
    // ...

    cfg, err := ini.Load([]byte("PACKAGE_NAME=ini"))
    // ...
    info := new(Info)
    cfg.NameMapper = ini.AllCapsUnderscore
    err = cfg.MapTo(info)
    // ...
}

使用函数 ini.ReflectFromWithMapper 时也可应用相同的规则。

键值映射器(Value Mapper)

值映射器允许使用一个自定义函数自动展开值的具体内容,例如在运行时获取环境变量:

type Env struct {
    Foo string `ini:"foo"`
}

func main() {
    cfg, err := ini.Load([]byte("[env]\nfoo = ${MY_VAR}\n"))
    cfg.ValueMapper = os.ExpandEnv
    // ...
    env := &Env{}
    err = cfg.Section("env").MapTo(env)
}

本例中,env.Foo 将会是运行时所获取到环境变量 MY_VAR 的值。

互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼。 “Bible”是圣经,有权威的书,我们的本意就是为开发者提供真正有用的的资料。 我的电子邮件 1217179982@qq.com,您在开发过程中遇到任何问题,欢迎与我联系。
Copyright © 2024. All rights reserved. 本站由 Helay 纯手工打造. 蜀ICP备15017444号