這個問題在這里已經有了答案: 我可以用不同的型別引數構造一個泛型型別的切片嗎? (2 個回答) 12 小時前關閉。
讓我們直接跳到代碼片段。
type Animal[T any] struct {
Name string
Type string
Params T
}
type DogParams struct {
TailLength int
}
type CatParams struct {
MeowVolume int
}
type Dog = Animal[DogParams]
type Cat = Animal[CatParams]
type Tiger = Animal[CatParams]
var animals = []Animal[any]{
{
Name: "biggie doggie",
Type: "dog",
Params: DogParams{TailLength: 5},
},
{
Name: "persia",
Type: "cat",
Params: CatParams{MeowVolume: 2},
},
}
將動物從 轉換為 的最佳方法是Animal[any]什么Animal[CatParams]?
我努力了
cat, ok := any(animals[1]).(Cat)
這不行。
提前致謝!
uj5u.com熱心網友回復:
根據@Volker 和@Pak Uula 的評論,您可以將它們粘貼在一個interface{}切片中,但這不是運行時動態型別。ACat仍然是Cat:
var animals = []interface{}{
Dog{
Name: "biggie doggie",
Type: "dog",
Params: DogParams{TailLength: 5},
},
Cat{
Name: "persia",
Type: "cat",
Params: CatParams{MeowVolume: 2},
},
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516131.html
標籤:去仿制药
