版权声明:本文为博主原创文章,转载时请务必注明本文地址, 禁止用于任何商业用途, 否则会用法律维权。 https://blog.csdn.net/stpeace/article/details/83119868
简单东西, 来看下:
package utils
import (
"gopkg.in/ini.v1"
)
var conf_reader *ini.File
func Load(config_file_name string) error {
conf, err := ini.Load(config_file_name)
if err != nil {
conf_reader = nil
return err
}
conf_reader = conf
return nil
}
func GetString(section string, key string) string {
if conf_reader == nil {
return ""
}
s := conf_reader.Section(section)
if s == nil {
return ""
}
return s.Key(key).String()
}
func GetInt32(section string, key string) int32 {
if conf_reader == nil {
return 0
}
s := conf_reader.Section(section)
if s == nil {
return 0
}
value_int, _ := s.Key(key).Int()
return int32(value_int)
}
package main
import (
"fmt"
"utils"
)
func main() {
if err := utils.Load("conf.ini"); err != nil {
fmt.Println(err)
return
}
ip := utils.GetString("test", "ip")
port := utils.GetInt32("test", "port")
fmt.Printf("ip:%v, port:%v\n", ip, port)
}
结果OK
来写点有面向对象感觉的代码:
package utils
import (
"gopkg.in/ini.v1"
)
type IniParser struct {
conf_reader *ini.File
}
func (this *IniParser) Load(config_file_name string) error {
conf, err := ini.Load(config_file_name)
if err != nil {
this.conf_reader = nil
return err
}
this.conf_reader = conf
return nil
}
func (this *IniParser) GetString(section string, key string) string {
if this.conf_reader == nil {
return ""
}
s := this.conf_reader.Section(section)
if s == nil {
return ""
}
return s.Key(key).String()
}
func (this *IniParser) GetInt32(section string, key string) int32 {
if this.conf_reader == nil {
return 0
}
s := this.conf_reader.Section(section)
if s == nil {
return 0
}
value_int, _ := s.Key(key).Int()
return int32(value_int)
}
package main
import (
"fmt"
"utils"
)
func main() {
ini_parser := utils.IniParser{}
if err := ini_parser.Load("conf.ini"); err != nil {
fmt.Println(err)
return
}
ip := ini_parser.GetString("test", "ip")
port := ini_parser.GetInt32("test", "port")
fmt.Printf("ip:%v, port:%v\n", ip, port)
}
自测OK.
简单东西,无需多说。