型アサーションのために関数に型変数を渡す
関数に型を渡すことで型アサーションを実行したいと考えています。基本的に、次のことを達成することを目的としています。
<code class="go">// Note that this is pseudocode, because Type isn't valid here func myfunction(mystring string, mytype Type) { ... someInterface := translate(mystring) object, ok := someInterface.(mytype) ... // Do other stuff } func main() { // Desired function call myfunction("hello world", map[string]string) }</code>
myfunction で型アサーションを正常に実行するには、次の関数宣言を使用します。
<code class="go">package main import "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) // false assertMatch := myfunction("hello world", "stringSample") fmt.Printf("%+v\n", assertMatch) // true }</code>
このアプローチには、型のサンプルの使用が含まれます。型アサーションが成功するためには型が同一であることを確認して、一致させる必要があります。
以上がGoで型アサーションのために型変数を関数に渡す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。