関数に型を渡すことによる型アサーション
Go では、型アサーションには、インターフェイス値が特定の型を実装しているかどうかの検証が含まれます。関数を通じてこれを実現するには、reflect パッケージを使用して、予期されるデータ型のサンプルを提供します。
関数宣言
使用する関数宣言は次のとおりです。 :
<code class="go">func myfunction(v interface{}, mytype interface{}) bool</code>
ここで:
使用法
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 サイトの他の関連記事を参照してください。