Кроме того, что в 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
.
![Аватары экспертов Хекслета](https://cdn2.hexlet.io/assets/faces/mentors-828ca6c66fdd5ff38fbd04a5ed1645fb51a33e8fb2579504d71d79e798c8684f.png)
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Вебинар «Как самостоятельно учиться»
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.