В руби не принято инициализировать переменные до использоваения.
Например, если нам понадобится переменная name
со строкой "Вася"
, то не надо писать так:
name = nil
# куча каких-то инструкций, не использующих name
name = "Вася"
puts "Меня зовут #{name}!"
Вместо этого в руби принято объявлять переменную непосредственно перед использованием:
# куча каких-то инструкций, не использующих name
name = "Вася"
puts "Меня зовут #{name}!"
Но есть случаи, когда без предварительной подготовки не обойтись. Например, имеет смысл инициализировать переменную нулём, если планируем что-то к ней потом добавлять:
apple_count = 0
if name == "buratino"
apple_count += 5
end
puts "У нас #{apple_count} яблок"
Другой случай — когда нам надо зайти в цикл по определённому условию (тут же мы инициализируем и пустой массив, чтобы в него можно было складывать строки):
user_input = nil
names = []
while user_input != "" do
user_input = gets.encode("UTF-8").chomp
names << user_input
end
В переменной user_input
должен быть nil
, чтобы условие вхождения в цикл сработало в первый раз. Если мы этого не сделаем, то в while
получим ошибку «неизвестная переменная user_input».