我是 Go 语言的新手,发现错误处理非常冗长。我已经了解了其原因,大多数情况下都同意,但有些地方似乎需要编写更多的代码来处理错误,而实际工作却很少。这里是一个(人为制造的)例子,我将“Hello world!”输入到 cat 中,并读取并打印输出。基本上每一行都要添加三行代码来处理错误,但实际上我还没有真正处理任何错误。
package main
import "fmt"
import "io"
import "io/ioutil"
import "os/exec"
func main() {
cmd := exec.Command("cat", "-")
stdin, err := cmd.StdinPipe()
if err != nil {
return
}
stdout, err := cmd.StdoutPipe()
if err != nil {
return
}
err = cmd.Start()
if err != nil {
return
}
_, err = io.WriteString(stdin, "Hello world!")
if err != nil {
return
}
err = stdin.Close();
if err != nil {
return
}
output, err := ioutil.ReadAll(stdout)
if err != nil {
return
}
fmt.Println(string(output))
return
}
有没有一种惯用的、简洁的方法来处理这个问题?我感觉自己好像漏掉了什么。