我已閱讀Effective Go and Go教程以及一些源代碼,但interface {}
語法背後的確切機制是Go對我來說有點神祕。我第一次在試圖實現heap.Interface
時看到它,它似乎是某種類型的容器(讓我想起一個monad),從中我可以提取任意類型的值。Go中的「interface {}」語法的作用是什麼?
爲什麼Go編寫使用它?對泛型是否有一種解決方法?有一種更優雅的方式來從heap.Interface
獲取值,而不是使用heap.Pop(&h).(*Foo)
(在堆指針指向Foo類型的情況下)將它們解除引用?
啊,這是一個匿名類型!收到了。謝謝!我想我會使用某種反射來查詢所持有的類型。我還沒有與那部分工作;到目前爲止,我只使用了(奇數,對我)`。()`語法來取回值。 –
2011-02-08 23:22:42