package tools import ( "gopkg.in/yaml.v2" "io" "log" "os" ) //自定义选项 type Option struct { Filters []struct { Filter7D string `yaml:"filter7d"` Filter14D string `yaml:"filter14d"` } `yaml:"filters"` Macros []string `yaml:"macros"` } //自定义文件服务器地址 type ServerConf struct { Server []string `yaml:"server"` } func NewOptionObj() *Option { return &Option{} } func NewServerConfObj() *ServerConf { return &ServerConf{} } func (ServerConf) ReadYaml(yamlFile string) *ServerConf { file, err := os.Open(yamlFile) if err != nil { log.Printf("打开yaml文件错误,错误是:%v", err) return nil } defer file.Close() data, err := io.ReadAll(file) if err != nil { log.Printf("读取yaml文件错误,错误是:%v", err) return nil } var serverconf ServerConf err = yaml.Unmarshal(data, &serverconf) if err != nil { log.Printf("yaml文件内容反序列化失败,错误是:%v", err) return nil } return &serverconf } func (Option) ReadYaml(yamlFile string) *Option { file, err := os.Open(yamlFile) if err != nil { log.Printf("打开yaml文件错误,错误是:%v", err) return nil } defer file.Close() data, err := io.ReadAll(file) if err != nil { log.Printf("读取yaml文件错误,错误是:%v", err) return nil } var option Option err = yaml.Unmarshal(data, &option) if err != nil { log.Printf("yaml文件内容反序列化失败,错误是:%v", err) return nil } return &option }