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.

Рекомендуемые программы