0
以下の例では、タイプアサーションエラーが発生しています。インターフェイスから実際のオブジェクトにキャストするときのアサーションエラーのタイプ
エラー:
49:動物園を入力する(IZoo型)Zを変換することはできません:必要型アサーション
49:動物園に割り当てることができない(z)は
type IAnimal interface {}
type IZoo interface {}
type Zoo struct {
animals map[string]IAnimal
}
func NewZoo() *Zoo {
var z IZoo = &Zoo{}
Zoo(z).animals = map[string]IAnimal{} // cannot convert z (type IZoo) to type Zoo: need type assertion
return z // cannot use z (type IZoo) as type *Zoo in return argument: need type assertion
}
を.animals
は、あなたが1行でそれを行うことができませんでした、私たちはhttps://play.golang.org/p/u3BW9rBmiE – user2727195
が必要です。(動物園).analals = 'この表現が何をすべきだと思いますか?それは何ですか?このステートメントの後に破棄される一時的なオブジェクトを作成します。したがって、あなたがアクセスできないオブジェクトのフィールドに値を割り当てることは何を意味しますか?基本的にはその行を削除することができ、プログラムの観察された動作は変更されません。 – user2727195
@ Z 'user2727195、個別の宣言と代入 – zerkms