學習語言它已經令我感到詫異,我不能輸出的Vec<>
一個實例:Vec <T>爲什麼不實現Display特性?
main.rs:8:26: 8:28 error: the trait `core::fmt::Display` is not implemented for the type `collections::vec::Vec<_>` [E0277]
main.rs:8 println!("{}", v1);
我能理解這一點,我知道使用{:?}
調試佔位符描述here的。不幸的是,我還不明白答案,即爲什麼我不能這樣做。對於C#或Haskell來說這將是非常簡單的任務,不是嗎?對於可序列化(或可轉換爲String
)的任何T
,我將執行Display
特性Vec<T>
。對於我爲什麼不能這樣做,我可以有不同的解釋嗎?它是類型系統的限制嗎?
你見過http://stackoverflow.com/questions/30633177/implement-fmtdisplay-for-vect?這個問題也問爲什麼你不能實現'顯示'Vec' –
謝謝!不過,我不明白。爲什麼我需要額外的東西像'struct'來實現特性? – UserControl
因爲如果可以的話,別人也可以,然後你會有兩個實現,編譯器永遠不會知道哪一個要調用 –