【发布时间】:2020-05-10 14:58:07
【问题描述】:
我在 Golang 中编写了以下代码,我需要将输出值传递到 dateStruct,有人可以帮我怎么做,或者即使有其他更好的方法可以将终端的命令输出传递到结构中?
type dateStruct struct {
day string
month string
year string
}
func main() {
out, err := exec.Command("date").Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("The date is %s\n", out)
fmt.Println(dateStruct{})
}
【问题讨论】:
-
你到底想做什么? exec.Command().Output() 因您正在执行的命令而异。如果您的最终目标是获取当前日期,则有更好的方法。
-
正如@CeriseLimón 提到的,输出的格式很关键。我认为
date只是一个例子。理想情况下,如果您可以让命令以可解析格式(JSON、YAML 等)输出 - 那么您可以在命令的stdout上使用Pipe,并将管道的io.Reader直接传递给适当的Decoder(json.Decoder、yaml.Decoder等)
标签: go