[英]Reading documentation, specifically bounded traits
查看如何從生銹-0.13中的stdin讀取,我到了這個頁面 ,其中包含以下代碼:
for line in io::stdin().lock().lines() {
print!("{}", line.unwrap());
}
我試着按照文檔來弄清楚到底發生了什么,但是遇到了lines()函數。 最后,我瀏覽了代碼(非常棒,他們在文檔中有一個鏈接)並找到了BufferPrelude ,它回答了lines()的來源:
impl<T: Buffer> BufferPrelude for T {...}
我的問題是 - 是否更容易弄清楚發生了什么? 文檔引擎是不是沒有捕獲這種類型的邏輯?
而這正是被稱為執行毯 ,即對所有類型的實現T
已經實現Buffer
,和文檔系統目前不遵循這樣的傳遞實現(即BufferedReader
impls Buffer
,所以BufferPrelude
是“一刀切impl'd” for BufferedReader
)。
找到這個的最快方法就是使用搜索功能特別尋找方法,所以使用lines
。 這實際上會導致您進入BufferPrelude
,您會注意到它“僅”實現了實現Buffer
類型,因此您可以推斷出BufferedReader
必須實現Buffer
。 要驗證這一點,您可以單擊Buffer
並查看底部的“實現者”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.