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

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

DDD
リリース: 2024-11-01 08:37:31
オリジナル
635 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート