Возможный дубликат:
В чем разница между Ruby 1.8 и Ruby 1.9
Я обнаружил некоторые различия в интерпретации глобальных и локальных переменных.
Может ли кто-нибудь указать мне на список основных отличий?
Возможный дубликат:
В чем разница между Ruby 1.8 и Ruby 1.9
Я обнаружил некоторые различия в интерпретации глобальных и локальных переменных.
Может ли кто-нибудь указать мне на список основных отличий?
Это, наверное, самые важные изменения:
Ruby 1.9 изменился с интерпретации на компилируемый по байт-коду (с использованием виртуальной машины YARV).
Класс String был полностью переработан, чтобы сделать его совместимым с кодировкой.
Регулярные выражения теперь реализуются с использованием движка Oniguruma, а не самодельного, используемого в Ruby 1.8, что позволяет использовать новые функции, такие как отрицательный взгляд.
Библиотека enumerator
из stdlib была добавлена в ядро, и большинство Enumerable
методов были изменены, чтобы возвращать Enumerator
при вызове без блока.
Symbol#to_proc
был добавлен.
Появился новый синтаксис лямбда-выражений ->
, который позволяет использовать аргументы по умолчанию и лямбда-выражения, принимающие блоки.
Более полный список изменений можно найти здесь.
Одним из важных моментов может быть то, что они используют другую виртуальную машину (по крайней мере, «стандартные» дистрибутивы, очевидно, есть несколько вариантов, таких как MacRuby, IronRuby и т. Д.). Подробную информацию обо всех изменениях можно найти здесь.