ホームページ  >  記事  >  バックエンド開発  >  型アサーションを使用して golang 関数のさまざまな種類のエラーを処理する

型アサーションを使用して golang 関数のさまざまな種類のエラーを処理する

WBOY
WBOYオリジナル
2024-04-24 12:09:011017ブラウズ

Go 関数でさまざまなタイプのエラーを処理する場合、型アサーションを使用して変数の実際の型を確認し、必要な型に変換できます。タイプ アサーションの構文は次のとおりです: variable, ok :=interfaceVariable.(type)。variable はチェックするインターフェイス変数、type は変換先のターゲットのタイプ、ok は変換が成功したかどうかを示すブール値です。 。タイプ アサーションを使用すると、さまざまなエラー タイプに基づいてさまざまなコード パスを実行できます。

型アサーションを使用して golang 関数のさまざまな種類のエラーを処理する

#型アサーションを使用して Go 関数のさまざまな種類のエラーを処理する

Go 関数でさまざまな種類のエラーを処理する場合、型アサーションを使用できます。型アサーションは、変数の実際の型をチェックし、それを必要な型に変換できる型チェック メカニズムです。これは、さまざまなエラー タイプに基づいてさまざまなコード パスを実行する必要がある場合に便利です。

構文

型アサーションの構文は次のとおりです。

variable, ok := interfaceVariable.(type)

  • variable は、インターフェイス変数です。チェックされる。
  • type は、変換先のターゲットのタイプです。
  • ok は、変換が成功したかどうかを示すブール値です。変換が失敗した場合、okfalse になります。

実際的なケース

次の関数を考えてみましょう:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。