ホームページ  >  記事  >  バックエンド開発  >  Go で型を関数に渡して型アサーションを実行するにはどうすればよいでしょうか?

Go で型を関数に渡して型アサーションを実行するにはどうすればよいでしょうか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 19:57:30575ブラウズ

How can you perform Type Assertion in Go by passing in a type to a function?

関数に型を渡すことによる型アサーション

Go では、型アサーションには、インターフェイス値が特定の型を実装しているかどうかの検証が含まれます。関数を通じてこれを実現するには、reflect パッケージを使用して、予期されるデータ型のサンプルを提供します。

関数宣言

使用する関数宣言は次のとおりです。 :

<code class="go">func myfunction(v interface{}, mytype interface{}) bool</code>

ここで:

  • v は、確認する値を保持する変数です。
  • mytype は、予期されるデータ型のサンプルです。

使用法

main 関数では、次のように myfunction を呼び出すことができます:

<code class="go">assertMatch := myfunction("hello world", "stringSample")</code>

ここで、「stringSample」はサンプルです文字列型の。 v 値が文字列の場合、関数は true を返します。それ以外の場合は false を返します。

例を示します:

<code class="go">package main

import (
    "fmt"
    "reflect"
)

func myfunction(v interface{}, mytype interface{}) bool {
    return reflect.TypeOf(v) == reflect.TypeOf(mytype)
}

func main() {

    assertNoMatch := myfunction("hello world", map[string]string{})

    fmt.Printf("%+v\n", assertNoMatch)

    assertMatch := myfunction("hello world", "stringSample")

    fmt.Printf("%+v\n", assertMatch)

}</code>

出力:

false
true

以上がGo で型を関数に渡して型アサーションを実行するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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