私はreading aboutタイプエイリアスとGolangで構成された構造体でした。私は、構造的には同じですが、お互いに簡単に変換できる2つの構造体を持つことができるようにしたいと考えています。Golangでコンバートタイプを変更
私のように定義された親構造を有する:私はUser
を定義した場合、その期待
type PublicUser struct {
*User
}
:
type User struct {
Email string `json:"email"`
Password string `json:"password"`
}
、以下のように定義合成構造体を
a := User{
Email: "[email protected]",
Password: "1234",
}
次に、次の型変換を実行できます:
b := (a).(PublicUser)
しかし、それは無効な型アサーションで失敗します。
invalid type assertion: a.(PublicUser) (non-interface type User on left)
私は行くに構造的に類似のタイプの間で変換することができますどのように?移動中
https://play.golang.org/p/I0VqrflOfXU
"私は親の構造が定義されています"。いいえ、あなたはしません。 Goには_no_親子関係があります。それは今と永遠に忘れてください。親子関係の構図を考えることは役に立ちません。 – Volker
ちょっとOP、あなたが答えがあなたが望んでいないと決めた理由を説明する気に?あなたは一度それを受け入れたので、あなたがいくつかの情報を見つけたら、私は興味があります –