Ruby: Все есть выражение
Кроме того, что в Ruby всё есть объект, практически всё ещё и выражение. Что это значит? Возьмем для примера условные конструкции, например if
. if
в большинстве языков — это конструкция языка, которая может появляться только в определенных местах. Её нельзя использовать в составе каких-то выражений. В Ruby это не так:
# так как if выражение, значит
# мы можем присваивать результат его выполнения
a = if 5 > 3
'yes'
else
'no'
end
puts a # => 'yes'
То же самое касается любых других конструкций, вплоть до определения функций/методов, модулей, классов:
# в f попадает не сама функция, а её имя в виде символа
f = def foo
end
puts f # :foo
Зачем это нужно? Чем больше языковых конструкций реализовано в виде выражений, тем более выразительным является язык. В таком языке больше возможностей за счёт комбинирования конструкций, как в примере с if
.
Задание
Реализуйте функцию, которая меняет в строке регистр каждой буквы на противоположный.
invert_case('Hello, World!'); // hELLO, wORLD!
invert_case('I loVe JS'); // i LOvE js
Полезные методы:
upcase()
– перевод строки в верхний регистрdowncase()
– перевод строки в нижний регистр
Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.