- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想创建一个实现 io.Writer
的结构,即 Write(p []byte) (n int, err error)
。该结构将省略传递给它的某些字节,因此实际上不会写入 p
参数中传递的所有字节。 (实际目的并不重要,但它可以是例如忽略写入的前 10 个字节,忽略第二个字节或其他改变从调用者传递给方法的字节数写入的字节数的东西)。
The documentation io.Writer
的 Write
方法说明如下(强调我的):
Write writes len(p) bytes from p to the underlying data stream. It returns the number of bytes written from p (0 <= n <= len(p)) and any error encountered that caused the write to stop early. Write must return a non-nil error if it returns n < len(p). Write must not modify the slice data, even temporarily.
我应该返回什么作为 n
值?为了遵守文档,成功后我应该返回 len(p)
。然而,该方法实际上可能没有写入那么多字节,返回值将是“错误的”。
最佳答案
成功返回len(p)
function called当您写入/dev/null 时,返回您尝试“写入”的字节数。它实际上从不写入任何内容,但它会正确地处理 发送给它的数据。
我假设在您的情况下,如果您的编写器无法正确处理发送给它的所有字节,您应该只返回 n < len(p)。
然后,您编写器的文档应该非常清楚说明写入和未写入的数据。使用您的函数的人需要知道写入完成后可以检索哪些数据。
关于go - 当我的 io.Writer 故意不写入它传递的所有字节时,它应该返回什么 "number of bytes written",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32571504/
首先是我的对象: public class Group { private final ObservableList sourceList; private final Obser
我有一个 Circle 类和一个 Rectangle 类。我现在想创建一个类 FunnyObject,每个类都由一个圆和两个矩形组成。 如果我这样做: class FunnyObject:public
我正在阅读一篇博文 here关于用 node.js 创建一个刮板并遇到了一些有趣的 javascript,我无法完全理解。这正是我想在我的脚本中使用的东西,但作为一个新手,我不想在不知道它们首先做什么
我不明白为什么在成功之后我为什么看不到脚本中的错误(我用谷歌搜索,它只是给出了关于jquery get脚本成功/错误时错误处理的很多答案)。 如果我使用“any” js脚本执行此操作 $.getScr
我目前正在为我公司正在开发的设备( radio 编码器)开发单元测试。 可以通过 SNMP(仅限 v1)访问各种统计信息,其中您可以获得由于各种原因丢弃的 UDP 数据报的数量。 我希望能够发送一个包
这是一个令人费解的问题。我运行良好的 ASP.NET 3.5 应用程序突然开始出现超时错误... System.Data.SqlClient.SqlException:超时已过。操作完成前超时时间已过
我正在尝试掌握 C++ 内存管理的窍门,并尝试使用无限循环的新语句故意使我的程序崩溃。据我了解,这只会在内存堆上保留越来越多的空间。但是我的程序不会崩溃。在 Windows 任务管理器中监控它,它将使
我是一名优秀的程序员,十分优秀!