Глубокий взгляд на работу методов в Ruby
Информация по теме
Цель: познакомиться с особенностями работы методов в Ruby
Материалы для подготовки
- Глава №8 книги Programming Ruby 2.0
Информация
Код, написанный на занятии можно скачать по ссылке. Для распаковки архива используйте команду 7z x 2017-10-24-code.7z
.
Практические занятия
Работа с аргументами, принимающими значения по умолчанию
- Создайте метод, вычисляющий доход от переработки фрукта. Переработка фрукта в форме выжимки сока увеличивает стоимость в 3.2 раза, переработка путём консервирования в 2.1 раза. Метод должен принимать в качестве аргумента стоимость фрукта без переработки и способ переработки. По умолчанию способ переработки по умолчанию - путём консервирования.
- Создайте метод, позволяющий рисовать диагональную линию на квадратном изображении. В качестве параметров передаётся ширина стороны изображения, а также цвет линии и цвет фона. По умолчанию цвет линии - чёрный, цвет фона - белый. Метод должен создавать изображение в формате “размер-цвет линии-цвет фона.png”.
Работа с произвольным количеством аргументов
- Создайте метод, принимающий произвольное количество фруктов в качестве аргументов. Для описания фрукта используется хеш с двумя ключами: название и изначальная цена. Результат работы метода - массив новых хешей, в которых добавлятся два поля - переработка в двух вариантах.
- Создайте метод, принимающий название название математической операции: синус, косинус, возведение в квадрат, вычисление квадратного корня -, а также произвольное количество вещественных чисел. Результатом работы метода должен стать массив из чисел, к которым применили данную операцию.
- Создайте метод для тестирования предыдущего метода. Метод должен создать 4 массива произвольной длины от 5 до 20 элементов и заполнить его произвольными вещественными числами от 0 до 200. На созданных массивах проверьте работу всех указанных операций.
Работа с хеш-аргументами метода
Создайте метод, рисующий котика. Котик описывается следующими параметрами:
- Вес, вещественное число
- Длина, вещественное число
- Наличие полосок, логическое, по умолчанию нет
- Цвет №1, строка, по умолчанию, #000000
- Цвет №2, строка, по умолчанию, #FFFFFF
- Цвет полосок, строка, по умолчанию, #FF0000
Параметры вес и длина должны быть обязательными, остальные - хеш-аргументами метода.
Проверьте работу метода, передавая аргументы
- Явным указанием хеш-ключей
- Передачей хеша с нужными ключами в качестве параметра