私は新しいことを学び、エラー処理が非常に冗長であることを発見しました。私はそれについての推論を読み、ほとんど同意しましたが、実際に作業を行うよりもエラーを処理するコードがたくさんあるようなところがいくつかあります。ここには、私が "Hello world!"というパイプを使った例があります。 catに入力し、出力を読み取り、出力します。基本的に、すべての行にエラーを処理するために3つ以上があり、私は実際に何も処理していません。goで複数のエラーを処理する
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
}
これを処理するための慣用的でクリーンな方法はありますか?私は何かが欠けているように感じる。
http://stackoverflow.com/questions/15397419/go-handling-multiple-errors-elegantly?rq=1 –