Возвращаемые значения
Часть раздела Основы путешествия по Ruby на Coddy — урок 50 из 88.
До сих пор наши методы выполняли такие действия, как вывод данных. Но методы становятся по-настоящему мощными, когда они могут возвращать данные в код, который их вызвал. Именно для этого и нужны возвращаемые значения.
В Ruby метод автоматически возвращает значение своего последнего выражения:
def add(a, b)
a + b
end
result = add(5, 3)
puts result # Выводит: 8Обратите внимание, что внутри метода нет puts. Вместо этого метод вычисляет a + b и возвращает это значение. Затем мы можем сохранить его в переменной или использовать напрямую.
Вы также можете явно использовать ключевое слово return:
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # Выводит: 20Ключевое слово return немедленно завершает выполнение метода и возвращает указанное значение. Это полезно, когда вы хотите выйти из метода раньше на основании определенного условия. Оба подхода работают, но программисты на Ruby часто полагаются на неявный возврат для более чистого кода.
Возвращаемые значения позволяют объединять операции в цепочки и строить сложную логику из простых методов:
def double(n)
n * 2
end
puts double(double(3)) # Выводит: 12Задание
ЛегкоОпределите метод с именем square, который принимает один параметр n и возвращает квадрат этого числа (число, умноженное на само себя).
Считайте два целых числа из входных данных. Используйте метод square, чтобы вычислить квадрат каждого числа, а затем выведите сумму обоих квадратов.
Например, если входные данные — 3 и 4:
- Квадрат 3 равен 9
- Квадрат 4 равен 16
- Сумма равна 25
Результат должен быть:
25Если входные данные — 5 и 2, результат должен быть:
29Шпаргалка
Методы могут возвращать значения в код, который их вызвал. В Ruby метод автоматически возвращает значение своего последнего выражения:
def add(a, b)
a + b
end
result = add(5, 3)
puts result # Выводит: 8Вы также можете использовать ключевое слово return явно, чтобы выйти из метода и вернуть значение:
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # Выводит: 20Возвращаемые значения позволяют объединять вызовы методов в цепочку:
def double(n)
n * 2
end
puts double(double(3)) # Выводит: 12Попробуйте сами
# Считать два целых числа из ввода
num1 = gets.chomp.to_i
num2 = gets.chomp.to_i
# TODO: Определите метод square ниже
# TODO: Вычислите сумму квадратов, используя метод square, и выведите результатВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь