Метод return вместо puts. В чем их отличие?

[А] Анатолий Шалобасов, 21 июля 2016, 19:51 , 5 подписчиков

Задача 9-1. В методе вы использовали return, а я до того как увидел ваш ответ писал код так

def round (radiys)
  puts (3.14*radiys*radiys)
end

И возник вопрос что из них более правильно и приоритетно? Или разницы что использовать в данной не имеет значения? Заранее спасибо за ответ.

Обсуждение (3)


Михаил Бутлицкий Учитель

[М]

В нашем случае метод вернёт значение, а что с ним потом делать уже отдельный вопрос — можно вывести на экран, а можно молча записать в базу данных, например.

Ваша реализация метода выводит результат на экран и все, без вариантов.

puts это метод, а return — ключевое слово руби, означающее вернуть это значение как результат работы метода.

Посмотрите ещё раз уроки, где мы говорим о методах и возврате значения.


[S]

Задача 9-1. Скажите такая реализация метода тоже верна?

def area_of_circle(radius)
    return Math::PI * radius ** 2  # area of a circle = πr2
end

Михаил Бутлицкий Учитель

[М]

Да, только будьте уверены в приоритетах операций (для надежности и наглядности лучше расставлять скобки).

И более руби way этот метод написать так:

def area_of_circle(radius)
    Math::PI * radius ** 2  # area of a circle = πr2
end