def read_file_info(*file_name)
arr = IO.readlines(file_name)
puts arr
end
read_file_info("abcd.txt")
读取文本文件是给我在错误而红宝石
readlines': no implicit conversion of Array into String (TypeError)
def read_file_info(*file_name)
arr = IO.readlines(file_name)
puts arr
end
read_file_info("abcd.txt")
读取文本文件是给我在错误而红宝石
readlines': no implicit conversion of Array into String (TypeError)
写入错误作为:
def read_file_info(file_name)
arr = IO.readlines(file_name)
puts arr
end
read_file_info("abcd.txt")
这是当你通过"abcd.txt"
的方法发生了什么事。 *file_name
创建一个数组:
def read_file_info(*file_name)
p file_name
end
read_file_info("abcd.txt")
# >> ["abcd.txt"]
IO.readlines(file_name)
只需要一个文件名作为字符串,但你给它一个Array
,这反过来,给你的错误:
no implicit conversion of Array into String (TypeError)
如果你想使用*file_name
然后在该方法内部使用Array#[]
为您的IO.readlines
方法一次一个文件作为字符串。
*file_name
指的参数变量数量,你就需要file_name[0]
提取的第一个参数,检查对方的回答单参数或使用多个文件:
def read_file_info(*files)
files.each do |file_name|
arr = IO.readlines(file_name)
puts arr
end
end
read_file_info("abcd.txt", "efgh.txt")