golangを勉強しています。
golangではエラーハンドリングは主に以下のような書き方をすると思います。
go
1f, err := os.Open("sample.txt") 2if err != nil { 3 panic(err) 4}
多くの場合で上記のように「err」をエラーのハンドリングに利用する事と思います。
単純なプログラムであれば良いのですが、多少複雑になってくると1つの関数内で複数のエラーハンドリングが必要となります。
その場合、初期化と同時に受け取るという事はできないため、異なる名前をつけた変数で受け取るか、または予め初期化し変数の受け取りのみ行うかという事になるかと思います。
ただ、実際にはエラーと同時に正常時の結果も受け取る為、もしも予め初期化を行っている場合は、結果の受け取りについても別途初期化が必要となり、記述が多少煩雑になります。
このような場合どのような書き方をするのが適切なのでしょうか。
<追記>
例えば以下のようなケースではどうでしょうか?
go
1package main 2 3import ( 4 "fmt" 5 "time" 6 "strconv" 7 "encoding/json" 8 9 "github.com/go-redis/redis" 10) 11 12func main() { 13 14 client := redis.NewClient(&redis.Options{ 15 Addr: "127.0.0.1:6379", 16 Password: "password", 17 DB: 0, 18 }) 19 20 now := time.Now() 21 22 data := map[string]interface{} { 23 "key": "foo", 24 "value": "bar", 25 "time": strconv.FormatInt(now.Unix(), 10), 26 } 27 28 bytes, err1 := json.Marshal(data) 29 if err1 != nil { 30 panic(err1) 31 } 32 33 err2 := client.RPush("VALUES", string(bytes)).Err() 34 if err2 != nil { 35 panic(err2) 36 } 37 38}
回答1件
あなたの回答
tips
プレビュー