Хей гайз, объясните, пожалуйста, на пальцах, зачем return и что он делает. Да-да, прочитал что возвращает значение. Но что это значит? Зачем return в этом коде? И без него все работает. Объясните на человеческом языке плз, как вы это видите, как у вас этот код звучит в голове.
Если у Вас метод имеет результат вывода, то через puts Вы получите nil, так как puts печатает результат и возвращает nil, что в работе программы будет критично.
Катя по сути уже все выше Вам описала.
def sum(a, b)
res = a + b
puts 'bla bla'
end
x = sum(5, 23)
y = 3
puts "#{x+y}"
x = sum(5, 23)
- вернет nil, собственно в переменную x будет записан результат nil, хотя Вы ожидаете 28, собственно Вы не сможете использовать x дальше в программе.
puts "#{x+y}" выдаст ошибку - NoMethodError (undefined method `+' for nil:NilClass), так как метод sum вернул результат puts 'bla bla'
вывода - nil
Поэтому смотрите в контексте Ваших запросов.
return явно возвращает значение, если конечно оно Вам нужно. Методы в ruby возвращают результат выполнения последней строки
Опять же, return можно и не писать, а просто подставив в последнюю строку возврат нужного результата
def sum(a, b)
res = a + b
puts 'bla bla'
res
end
Метод sum вернет результат выполнения a + b
, напечатав при этом puts
и не вернет nil