2018/04/24

golangで何か書き始める時によく使うスニペット

golangで何かザクッと作り始める時に、よく以下のスニペットを使っています。

package main
import (
"log"
"os"
)
const (
exitCodeOK int = iota
exitCodeFailed
)
func main() {
os.Exit(run(os.Args))
}
func run(args []string) int {
err := work()
if err != nil {
log.Println("Failed to execute the work:", err)
return exitCodeFailed
}
return exitCodeOK
}
func work() error {
return nil
}
view raw base.go hosted with ❤ by GitHub


os.Exit()は、deferを実行しないで処理を終了してしまいます。あっちこっちで使うと思わぬ事故の元。
これをmain関数内だけで使って諸々の処理はその引数であるrun関数内で行うことで、
deferが実行されない事故を防げます。

・・・というのは、書籍「みんなのGo言語」の4.5章の受け売りなんです。
他にも素晴らしい記事がたくさん載ってるので必読!٩( 'ω' )و



0 件のコメント: