gpt4 book ai didi

go - 除非达到 EOF,否则哪个接口(interface)确保读取固定数量的字节?

转载 作者:行者123 更新时间:2023-12-01 22:31:26 25 4
gpt4 key购买 nike

根据 io.Reader 的文档, 它说。

type Reader interface {
Read(p []byte) (n int, err error)
}

...

Read reads up to len(p) bytes into p. It returns the number of bytes read (0 <= n <= len(p)) and any error encountered.
不太清楚是什么 n在这里的意思。这是否意味着除非达到 EOF,否则要读取的字节数?或者它只是意味着一个上限或即使没有达到 EOF 也要读取的字节数?
有人可以澄清它是什么吗?谢谢。

最佳答案

契约(Contract)是Read最多会读到 len(p)字节到缓冲区。
如果它可以读取所有len(p)字节,然后是 n=len(p) .
如果它读取较少(因为到达文件结尾,或者因为底层实现仅返回缓冲数据),则 n会更少。它可以是 0。Read是即使 err!=nil 也能返回有意义结果的函数之一。如果读取因为到达文件结尾而停止,它可能会返回读取的字节数和 io.EOF。

关于go - 除非达到 EOF,否则哪个接口(interface)确保读取固定数量的字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62605498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com