- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
def get_line_from_file(path, line)
result = nil
File.open(path, "r") do |f|
while line > 0
line -= 1
result = f.gets
end
end
return result
end
get_line_from_file("/tmp/foo.txt", 20)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
def get_line_from_file(path, line)
result = nil
File.open(path, "r") do |f|
while line > 0
line -= 1
result = f.gets
end
end
return result
end
get_line_from_file("/tmp/foo.txt", 20)
(с) stackoverflow.com
это?
если предположить что синтаксис корректен, то остается только лишнее присвоение в цикле, отсутствие проверок границ и обработки исключений.
что я пропустил?
чтой то я сильно сомневаюсь.
IO.readlines(source)[count]
и вопрос, что будет, если заказать тысячную строку из семистрочного файла?
мы провалимся в эксепшн? в возвращаемой строке будет EOF? случится руби-магия?
[мне так, для общего развития]
Пример который приведён как говнокод, на файле в 100 метров результат выдал за 0.005s, все же примеры с readlines занимают от 15 до 25 секунд.
Оригинальный "говнокод" ни разу не говнокод.
Ты сказал элементарную вещь, которую и школьник должен знать, чтобы не кушать память, и тебя за это плюсанули. Меня за тоже самое тремя постами выше минусанули два раза. Вывод: на этом сайте одно дерьмо обитает. И код от говнокода вы не отличаете.
Я не говорю что код хороший, потому как по моим критериям читабельность чаще всего выше производительности. Но до говнокода помоему этот пример не дотягивает. После DailyWTF это даже выглядит адекватно 🙂