type Host struct {
HostName string `yaml:"host"`
Addr string `yaml:"ip"`
}
type Hosts []Host
func (bs *Hosts) Read(filename string) error {
f, err := os.Open(filename)
if err != nil {
return err
}
b, err := io.ReadAll(f)
if err != nil {
return err
}
err = yaml.Unmarshal(b, bs)
return err
}
注意,要传指针(bs *Hosts) 这个地方。 yaml我是我比较喜欢的文件格式,可以直接导入struct,比较容易理解一些,个人觉得。