Content string
Cities []string
}
type Person struct {
Name string
Age int `ini:"age"`
Male bool
Born time.Time
Note
Created time.Time `ini:"-"`
}
func main() {
cfg, err := ini.Load("path/to/ini")
// ...
p := new(Person)
err = cfg.MapTo(p)
// ...
// 一切竟可以如此的简单。
// ...
n := new(Note)
err = cfg.Section("Note").MapTo(n)
// ...
}
结构的字段怎么设置默认值呢?很简单,只要在映射之前对指定字段进行赋值就可以了。如果键未找到或者类型错误,该值不会发生改变。
// ...
p := &Person{
Name: "Joe",
}
// ...
这样玩 INI 真的好酷啊!然而,如果不能还给我原来的配置文件,有什么卵用?
可是,我有说不能吗?
NAME = Unknwon
Male = true
; Author's age
Age = 21
GPA = 2.8
; Embeded section
[Embeded]
; Time data
Dates = 2015-08-07T22:14:22+08:00|2015-08-07T22:14:22+08:00
places = HangZhou,Boston
如果您希望配合 ShadowLoad 将某个分区映射到结构体,则需要指定 allowshadow
标签。
假设您有以下配置文件:
[IP]
value = 192.168.31.201
您应当通过如下方式定义对应的结构体:
任何嵌入的结构都会被默认认作一个不同的分区,并且不会自动产生所谓的父子分区关联:
type Child struct {
Age string
}
type Parent struct {
Name string
Child
}
type Config struct {
City string
Parent
}
示例配置文件:
City = Boston
[Parent]
Name = Unknwon
[Child]
Age = 21
很好,但是,我就是要嵌入结构也在同一个分区。好吧,你爹是李刚!
City = Boston
[Parent]
另请查看 的有关用法。