阅读文档,特别是有界特征
Reading documentation, specifically bounded traits
查找如何从 rust-0.13 中的标准输入读取,我找到了 this page,它具有以下代码:
for line in io::stdin().lock().lines() {
print!("{}", line.unwrap());
}
我试着按照文档来弄清楚到底发生了什么,但被 lines() 函数卡住了。最后我浏览了代码(非常棒,他们在文档中有一个 link )并找到 BufferPrelude 回答了 lines() 来自哪里:
impl<T: Buffer> BufferPrelude for T {...}
我的问题是 - 有没有更容易弄清楚发生了什么的方法?文档引擎是否根本无法捕捉到这种类型的逻辑?
这就是所谓的一揽子实施,即已经实施Buffer
的所有类型T
的实施,而文档系统没有t 目前遵循这样的传递实现(即 BufferedReader
impls Buffer
,因此 BufferPrelude
是 "blanket impl'd" for BufferedReader
)。
找到它的最快方法是使用搜索功能专门查找该方法,因此 lines
。实际上,这会引导您到 BufferPrelude
, where you would notice that it's "only" implemented for types that implement Buffer
, so you would deduce that BufferedReader
must implement Buffer
. To verify this you could click on Buffer
并查看底部的 "implementors"。
查找如何从 rust-0.13 中的标准输入读取,我找到了 this page,它具有以下代码:
for line in io::stdin().lock().lines() {
print!("{}", line.unwrap());
}
我试着按照文档来弄清楚到底发生了什么,但被 lines() 函数卡住了。最后我浏览了代码(非常棒,他们在文档中有一个 link )并找到 BufferPrelude 回答了 lines() 来自哪里:
impl<T: Buffer> BufferPrelude for T {...}
我的问题是 - 有没有更容易弄清楚发生了什么的方法?文档引擎是否根本无法捕捉到这种类型的逻辑?
这就是所谓的一揽子实施,即已经实施Buffer
的所有类型T
的实施,而文档系统没有t 目前遵循这样的传递实现(即 BufferedReader
impls Buffer
,因此 BufferPrelude
是 "blanket impl'd" for BufferedReader
)。
找到它的最快方法是使用搜索功能专门查找该方法,因此 lines
。实际上,这会引导您到 BufferPrelude
, where you would notice that it's "only" implemented for types that implement Buffer
, so you would deduce that BufferedReader
must implement Buffer
. To verify this you could click on Buffer
并查看底部的 "implementors"。