gpt4 book ai didi

ruby-on-rails - .seek 在 ruby​​ 中是什么意思

转载 作者:IT王子 更新时间:2023-10-29 00:26:35 24 4
gpt4 key购买 nike

此脚本中 f.seek(0) 的目的是什么?如果文件已经被程序打开,为什么我们需要 rewind(current_file)

input_file = ARGV[0]

def print_all(f)
puts f.read()
end

def rewind(f)
f.seek(0)
end

def print_a_line(line_count,f)
puts "#{line_count} #{f.readline()}"
end

current_file = File.open(input_file)

puts "First Let's print the whole file:"
puts # a blank line

print_all(current_file)

puts "Now Let's rewind, kind of like a tape"

rewind(current_file)

puts "Let's print the first line:"

current_line = 1
print_a_line(current_line, current_file)

最佳答案

它在流中寻找(“前往”、“尝试寻找”)给定位置(作为整数)。在您的代码中,您定义了一个名为 rewind 的新方法,它接受一个参数。当你调用它时

rewind(current_file)

您发送 current_file(您从磁盘或其他任何地方打开的文件)定义为:

current_file = File.open(input_file)

到 rewind 方法,它将“寻找”到文件开头的位置 0。

您还可以创建另一个名为 almost_rewind 的方法并写入:

def almost_rewind(f)
f.seek(-10, IO::SEEK_END)
end

这会在您的流中向后移动 10 个位置,从流的末尾开始。

关于ruby-on-rails - .seek 在 ruby​​ 中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617708/

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