Лекция 5. Контрольная работа. Определение класса MyRange. Конструкция begin-rescue
Контрольная работа
Задача 1. Что выведет следующий код?
ary = ['a', 'b', 'c'] ary.each do |w| w += 'x' end puts ary
Задача 2. Что выведет следующий код?
a = "abc" b = a b << 'x' puts a puts b
Задача 3. Напишите метод ip_to_number, который из строки c IP адресом получает целое число, которое получится, если
4 байта IP адреса интерпретировать как двоичную запись числа.
Задача 4. Напишите метод Integer.from_digits из массива десятичных цифр (объекты класса FixNum) вычисляет само число.
Используйте метод inject (нельзя писать digits.join.to_i)
def Integer.from_digits(digits) ... end
Определение своего класса MyRange
см. MyRangeКонструкция begin-rescue
begin Ух! мы тут такого сейчас понаделаем ! rescue MySimpleError => e ошибка вроде простая, сейчас мы её пофиксим и будем cчастливы retry if пофиксилась rescue MyUrecoverableError => e ууупс! puts "У нас серьезные неприятности " + e.message + "\n" + e.backtrace else итак, ошибок нет, и кое-что еще осталось сделать ensure а вот кое-что нужно сделать в любом случае (есть исключения или нет), например, закрыть все открытые соединения end