我想知道是否可以初始化一個包含通用字段的匿名結構數組。下面的代碼無法編譯,而且我找不到任何與以下相關的示例: testCases := type [K comparable, T Numeric] []struct { name string args map[K]T expected int }{ // items ... {"integer", map[string]int{ "a":1 }, }沒有匿名結構很容易,但不是目的: type args[K comparable, T Numeric] struct { m map[K]T } testCases := []struct { name string args args[string, int] expected int }{}謝謝!
1 回答

千巷貓影
TA貢獻1829條經驗 獲得超7個贊
引入了類型參數,因此在實例化類型時,可以為類型參數提供具體類型。鑒于此,你想做什么是沒有意義的。你想創建一個通用的匿名類型并立即實例化它。您不能在別處使用此匿名結構(因為它是匿名的),因此省略類型參數并使用具體類型來實例化類型參數(如果它是命名類型)。
并回答您最初的問題:不,您不能這樣做。語法不允許這樣做。有一項提案支持這一點但被拒絕:proposal: spec: generics: Anonymous generic aggregate types #45591。解決方法是使用命名結構類型而不是匿名結構類型,正如您所建議的那樣。
- 1 回答
- 0 關注
- 96 瀏覽
添加回答
舉報
0/150
提交
取消