gpt4 book ai didi

ruby - 寻找 "0"或使用倒带方法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:22:34 24 4
gpt4 key购买 nike

如果我想返回到文件的开头,使用

会更好吗?
f.seek(0)

f.rewind

例如“f”文件句柄?或者这只是一个偏好问题?

最佳答案

它们并不完全相同,所以更好取决于意图。 seek只是移动当前偏移量:

seek(amount, whence=IO::SEEK_SET) → 0

Seeks to a given offset anInteger in the stream according to the value of whence: ...

但是rewind还调整了lineno :

rewind → 0

Positions ios to the beginning of input, resetting lineno to zero.

所以 f.rewind 或多或少与:

f.seek(0)
f.lineno = 0

如果您查看 MRI C 实现,您会发现 rewind 就是这样实现的,但是是用 C 而不是 Ruby 实现的。

因此,如果您正在处理二进制数据(即没有行号)或者您确定您不关心行号,那么 f.seek(0) f.rewind 在功能上是等价的。

我倾向于使用rewind,因为它直接表达了我的意图。

关于ruby - 寻找 "0"或使用倒带方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27977368/

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