了解 Elixir Hexdocs(在示例 File.Stream 上)

问题描述 投票:0回答:1

Elixir Hexdocs 描述了模块

File
、函数
stream!
,它返回 File.Stream。根据我对Elixir中模块概念的理解,
File.Stream
是一个模块,其定义嵌套在
File
模块中。

查找

File.Stream
的文档,我没有找到任何有关任何功能的信息。它只是说它定义了一个 File.Stream 结构。这似乎是概念上模拟这种“文件流”的底层数据结构。文档没有列出任何函数定义,所以我没有找到它的文档,我如何实际使用该结构。

当然,在网上很容易找到示例,其中显示了与文件流一起使用的函数。在我看来,我什至可以在任何可以使用 File.Stream 的地方使用

Stream
,这意味着我可以使用也适用于
Stream
的所有功能。
但是,这似乎没有任何记录。我什至没有在文档中看到

File.Stream

实现了哪些协议。这是隐性知识吗?也许基于名称

File.Stream
Stream
非常相似的事实,以至于 Hexdocs 似乎不值得明确记录这一点?或者是否有 Hexdocs 的索引,显示可以使用此类数据结构做什么?
换句话说:我如何在 Hexdocs 中找到我可以使用 File.Stream 做什么?

elixir
1个回答
0
投票

File.stream!/3函数

的一部分。引用: 

该流实现了
Enumerable

Collectable
协议,这意味着它既可以用于读取也可以用于写入。

这里将详细介绍协议。

[…] Hexdocs 似乎不值得明确记录这一点?或者是否有 Hexdocs 的索引,显示可以使用此类数据结构做什么?

不,HexDocs 没有记录给定结构实现的所有协议,因为通常不可能知道。 Elixir 没有任何类似于 Rust 的“孤儿规则”,这意味着可以为系统中任何位置的任何结构实现新协议。这意味着任何依赖项都可以为该结构添加更多协议。因此,不可能以可靠的方式列出为给定结构实现的所有协议。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.