Я изучаю Ruby, следуя learnrubythehardway, и кажется очень простым и понятным, пока вас не попросят объяснить, что делают некоторые вещи. Я прокомментировал в своем коде, что, по моему мнению, происходит в программе. Хотел посмотреть, не попал ли я на цель, нужно переосмыслить ситуацию или не иметь понятия и не должен пытаться научиться кодовому кодированию.Понимание методов и объектов IO в Ruby
# Sets variables to arguments sent through terminal
from_file, to_file = ARGV
# Saves from_file object into in_file
in_file = open(from_file)
puts in_file
# Saves from_file data into indata
indata = in_file.read
puts indata
# Save to_file object into out_file with writing privileages
out_file = open(to_file, 'w')
puts out_file
# Writes(copies) indata into out_file
out_file.write(indata)
# Closes files so they can not be accessed anymore
out_file.close
in_file.close
Это то, что выход в терминале выглядит следующим образом:
#<File:0x0000000201b038>
This is text from the ex17_from.txt file.
Did it copy to the ex17_to.txt file?
#<File:0x0000000201ae58>
Мы также поставлена задача, чтобы попытаться уменьшить количество кода, необходимого и говорят, что мы можем сделать все эти действия в одной строке кода. Я решил, что могу просто стереть все комментарии и поставить заявления, в то время как все остальное помещается в одну строку кода. Тем не менее, это будет одна длинная строка, и я не думаю, что это то, о чем просит автор. Любые идеи о том, как сократить этот код, будут полезны.
Отличное альтернативное решение. Я пытаюсь использовать блоки do, но я не уверен, разрешено ли это. Поэтому я просто заканчиваю это упражнение. Как вы решаете, когда использовать блоки do, а когда нет? Есть ли определенные моменты, когда мне всегда нужно использовать блок do? Или он делает все, что угодно, это всего лишь код? – limaBEAN