Go 関数でさまざまなタイプのエラーを処理する場合、型アサーションを使用して変数の実際の型を確認し、必要な型に変換できます。タイプ アサーションの構文は次のとおりです: variable, ok :=interfaceVariable.(type)。variable はチェックするインターフェイス変数、type は変換先のターゲットのタイプ、ok は変換が成功したかどうかを示すブール値です。 。タイプ アサーションを使用すると、さまざまなエラー タイプに基づいてさまざまなコード パスを実行できます。
#型アサーションを使用して Go 関数のさまざまな種類のエラーを処理する
Go 関数でさまざまな種類のエラーを処理する場合、型アサーションを使用できます。型アサーションは、変数の実際の型をチェックし、それを必要な型に変換できる型チェック メカニズムです。これは、さまざまなエラー タイプに基づいてさまざまなコード パスを実行する必要がある場合に便利です。構文
型アサーションの構文は次のとおりです。variable, ok := interfaceVariable.(type)
は、インターフェイス変数です。チェックされる。
は、変換先のターゲットのタイプです。
は、変換が成功したかどうかを示すブール値です。変換が失敗した場合、
ok は
false になります。
実際的なケース
次の関数を考えてみましょう:func doSomething() error { if err := someDependency.DoSomething(); err != nil { return err } return nil }
someDependency.DoSomething() を呼び出します。このメソッドはさまざまな種類のエラーを返す場合があります。エラー タイプに基づいてさまざまなアクションを実行するには、タイプ アサーションを使用します。
func main() { if err := doSomething(); err != nil { switch err := err.(type) { case *myError1: // 执行错误1的处理代码 case *myError2: // 执行错误2的处理代码 default: // 执行默认的错误处理代码 } } }
err の実際のタイプに基づいてさまざまなコード パスを実行します。
err のタイプが
*myError1 の場合、エラー 1 の処理コードが実行されます。
err のタイプが
*myError2 の場合、エラー 2 の処理コードが実行されます。
err がこれら 2 つのタイプのいずれでもない場合、デフォルトのエラー処理コードが実行されます。
以上が型アサーションを使用して golang 関数のさまざまな種類のエラーを処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。