Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Первоуральск

Что нового в Ruby 2.3

На прошой неделе вышел превью Ruby 2.3.0. Что есть интересного из изменений:

  • оператор безопасной навигации вглубь объектов (safe navigation operator), #11537
  • в Hash и Array добавлен метод dig для доступа вглубь вложенных хэшей или массивов #11688
  • движение в сторону неизменяемых (frozen) по умолчанию строковых литералов (обоснование), обсуждение #11473 (планируется, что в Ruby 3 все строковые литералы будут неизменными)

Неизменяемость строк в Ruby 3

В Ruby 3 все строковые литералы будут неизменными. По поводу неизменности споры идут давно и сейчас движение в этоу сторону стало более конкретным. Выражается оно в появлении “магического” комментария frozen-string-literal, присутствие которого включает по умолчанию неизменность для всех строковых литералов, и в добавлении --enable/--disable=frozen-string-literal для управления таким поведением.

Основной аргумент в пользу неизменяемых строк — увеличение скорости работы за счет внутренних оптимизаций. В большинстве случаев строки остаются без изменений на протяжении всего жизненного цикла, и фиксирование такого поведения позволяет повысить производительность без изменения кода.

Читать полностью »