为什么std::io::copy
要求reader和writer参数都需要作为可变引用传递?
我可以理解为什么编写器需要进行变异,以适应写入它的数据,从而改变其内部状态.
然而,为什么读者也必须被标记为可变引用?如果我只读取数据,那么我不需要对给定类型的引用而不是可变引用吗?
为什么std::io::copy
要求reader和writer参数都需要作为可变引用传递?
我可以理解为什么编写器需要进行变异,以适应写入它的数据,从而改变其内部状态.
然而,为什么读者也必须被标记为可变引用?如果我只读取数据,那么我不需要对给定类型的引用而不是可变引用吗?
因为一般来说,Read
种类型都是一次性的:从中读取,你就可以对其进行are次变异.
考虑标准输入:你只能从一次读取,所以something必须改变.当您从套接字读取数据时,几乎可以肯定的是,您正在修改一个内部缓冲区,该缓冲区用于解释您获得的网络数据包之间的差异,以及您在任何给定时刻想要读取的数据量.读Chain
本书怎么样,它用来把可读的东西连接在一起;如果没有Mutations ,它就无法追踪它应该从哪个基因中读取信息.
当然,有一个不需要可变访问来执行读取的Read
类型是possible,但这不是universally,因为它不是普遍正确的,Read
特性需要可变访问.