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

Go で型変数を関数に渡して型をアサートするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-01 08:37:31510ブラウズ

How can I assert a type by passing a type variable into a function in Go?

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

あなたが述べたように、型変数を関数に組み込むことで型をアサートすることを目的としています。関数。これを達成するには、型アサーションを容易にするために myfunction の適切な関数宣言を詳しく調べてみましょう。

func myfunction(mystring string, mytype interface{}) bool {
    ...
}

この宣言では:

  • mystring は文字列パラメーターのままです。
  • ただし、
  • mytype は、interface{} に改訂されました。これは、myfunction が任意の型の値を受け入れることを意味します。

myfunction 内:

  1. 渡された mystring の型を確認するには、reflect.TypeOf() を使用します。
  2. reflect.TypeOf() を使用して mytype の型を決定します。
  3. 両方の型が一致する場合は true を返します。それ以外の場合は false を返します。

実装例:

package main

import (
    "fmt"
    "reflect"
)

func myfunction(mystring string, mytype interface{}) bool {
    return reflect.TypeOf(mystring) == 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)

}

ここでは、myfunction の 2 番目のパラメータとして任意の型を指定でき、mystring がそれに一致するかどうかを評価します。型を使用して、型アサーションに貴重な柔軟性を提供します。

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

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