Go では、型アサーションを通じて構造体からインターフェイスに変換できます。構文は value, ok := value.(Type) です。ここで、value は変換される変数または式、Type は変換されるインターフェイスの種類、ok は変換が成功したかどうかを示すブール値です。たとえば、User 構造体を fmt.Stringer インターフェイスに変換し、ok 値を使用して変換が成功したかどうかを判断できます。
Go で型アサーションを使用して構造体からインターフェイスに変換する
Go では、型アサーションを使用して構造体からインターフェイスに変換できます。型を別の互換性のある型に変換します。構造体をインターフェイスに変換するには、組み込みの typeassertition
メカニズムを使用できます。
構文
value, ok := value.(Type)
ここで:
value
は、変換される変数または式です。 Type
は、変換先のインターフェイスの種類です。 ok
は、変換が成功したかどうかを示すブール値です。 実用的
次は、User
構造体を fmt.Stringer # に変換する方法を示す実際的なケースです。 ## インターフェイス:
package main import ( "fmt" ) type User struct { Name string Age int } func (u User) String() string { return fmt.Sprintf("Name: %s, Age: %d", u.Name, u.Age) } func main() { u := User{Name: "John", Age: 30} // 转换为接口 if v, ok := u.(fmt.Stringer); ok { fmt.Println(v) // 输出:Name: John, Age: 30 } }
注:
型は
fmt.Stringer インターフェイスを実装しているため、変換は有効です。
変換が成功したかどうかを示すブール値。変換が失敗した場合は、
false が返され、
value は
nil になります。
以上がgolang 構造をインターフェースに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。