Моя программа загружает список из файла, и я пытаюсь изменить метод так, чтобы он автоматически закрывался.
Я посмотрел документацию по Ruby, широкий ответ stackoverflow и веб-сайт этого парня , но синтаксис всегда разный и для меня пока что ничего не значит.
Моя первоначальная загрузка:
def load_students(filename = "students.csv")
if filename == nil
filename = "students.csv"
elsif filename == ''
filename = "students.csv"
end
file = File.open(filename, "r")
file.readlines.each do |line|
name, cohort = line.chomp.split(",")
add_students(name).to_s
end
file.close
puts "List loaded from #{filename}."
end
Мойпопытаться закрыть автоматически:
def load_students(filename = "students.csv")
if filename == nil
filename = "students.csv"
elsif filename == ''
filename = "students.csv"
end
open(filename, "r", &block)
line.each do |line|
name, cohort = line.chomp.split(",")
add_students(name).to_s
end
puts "List loaded from #{filename}."
end
Я ищу тот же результат, но без необходимости вручную закрывать файл.
Не думаю, что он будет сильно отличаться,Так как же работает синтаксис для автоматического закрытия блоков?