私は新しいです - ちょうどそれで遊んでいます - しかし、コマンドラインツールを書いた - 私は約30種類の関数を呼び出すreturn x, err
。どのような場合でも、私がしたいことは、エラーがあればパニックになります。基本的にすべてが完璧に動作するか、すべてが失敗します。ゴランでタイプジェネリック(テンプレート)関数を作ることが可能です
私はtemplate.Must(t Template*, err Error) Template*
があることを知っています。私はcheck(something interface{}, err Error) interface{}
を作ることができますが、それを使用するにはタイプキャストを行う必要があります。これは厄介です。
は私が
x := panicIfError(ioutil.ReadFile(fileName))
ような何かを行うことができ、xは右のタイプで出てきたpanicIfError
ような一般的な機能のようなものを作るためにどのような方法でそれは可能ですか?
(多くの人が同じ行に置いているのを見たことがありますが、あまりにも多くの読みやすさを犠牲にしています。現在私の唯一の解決策は、使用しているすべての単一のタイプに対して、panicIfError
のオーバーロードを行うことです。理想的)
で関連トピックを参照してください - リターン・インタフェース{}とちょうど型アサーションに私はそれを行うたびに追加 - すべての悪のうちの少なくともです。醜い、醜いですが、if複合文と同じように醜いものではありません! :) –