阅读文档,特别是有限的特征

时间:2015-01-05 03:36:10

标签: rust

查看如何从生锈-0.13中的stdin读取,我得到this page,其中包含以下代码:

for line in io::stdin().lock().lines() {
    print!("{}", line.unwrap());
}

我尝试按照文档来弄清楚究竟发生了什么,但却遇到了line()函数。最后,我浏览了代码(非常棒,他们在文档中有一个链接)并找到了BufferPrelude,它回答了lines()的来源:

impl<T: Buffer> BufferPrelude for T {...}

我的问题是 - 是否更容易弄清楚发生了什么?文档引擎是不是没有捕获这种类型的逻辑?

1 个答案:

答案 0 :(得分:3)

这就是所谓的一揽子实现,即已实现T的所有类型Buffer的实现,文档系统目前不遵循传递实现就像那样(即BufferedReader推测Buffer,所以BufferPrelude对于BufferedReader来说是“毯子”。

找到这个的最快方法就是使用搜索功能特别寻找方法,lines。实际上,这会导致您BufferPrelude,您会注意到它是“仅”实现Buffer的类型,因此您会推断BufferedReader必须实现{{1} }}。要验证这一点,您可以点击Buffer并查看底部的“实施者”。