Я не понимаю различий между «текущей» версией Ruby (1.8) и «новой» версией (1.9). Есть ли «легкое» или «простое» объяснение различий и почему они такие разные?
В целях внесения этой информации в строку для более удобного использования и на случай, если ссылка исчезнет в абстрактном будущем, вот обзор слайдов Сэма. Слайд-шоу менее утомительно для просмотра, но размещение всего этого в виде списка, подобного этому, также полезно.
HTH == "Надеюсь, что это поможет". Я должен был найти это. Можете ли вы указать мне на предоставленный вами ответ, когда вы не надеялись, что он поможет?
Крис Весселинг
Или вы имели в виду счастливы помочь? Пожалуйста, отредактируйте соответственно. Или удалите его, если ваше счастье / надежда важны для всех ваших ответов. ;-)
Крис Весселинг
10
Нет, я оставлю все как есть. В процентном отношении к общему ответу это мизерно, и меня устраивает любая интерпретация. Спасибо.
Тим Салливан
Согласно предоставленной вами ссылке, изменение делегирования было ошибкой и было исправлено.
Кайл Стрэнд
А как насчет несоответствия между "Range.include"? метод? Ruby v1.8.7 дает другой результат, чем v1.9
Лукас Поттерски
12
Одним из огромных отличий будет переход от интерпретатора Matz к YARV , виртуальной машине с байт-кодом, которая значительно повышает производительность.
Мне они оба нравятся. В книге Pickaxe некоторые вещи обсуждаются более полно, но язык программирования Ruby хорош, когда вы хотите что-то быстро просканировать. Это ближе к книге "в двух словах".
Железный Человек
1
Еще несколько изменений:
Возврат одноэлементного массива splat:
def function
return*[1]end
a=function
рубин 1.9: [1]
рубин 1,8: 1
аргументы массива
def function(array)
array.each {|v| p v }end
function "1"
рубин 1.8: "1"
ruby 1.9: неопределенный метод `each 'для" 1 ": String
Ответы:
У Сэма Руби есть классное слайд-шоу, в котором показаны различия .
В целях внесения этой информации в строку для более удобного использования и на случай, если ссылка исчезнет в абстрактном будущем, вот обзор слайдов Сэма. Слайд-шоу менее утомительно для просмотра, но размещение всего этого в виде списка, подобного этому, также полезно.
Ruby 1.9 - Основные функции
Что изменилось?
Строки из одного символа.
Рубин 1.9
Рубин 1.8.6
Строковый индекс.
Рубин 1.9
Рубин 1.8.6
{"a", "b"} больше не поддерживаются
Рубин 1.9
Рубин 1.8.6
Действие: преобразовать в {1 => 2}
Array.to_s
Теперь содержит знаки препинанияРубин 1.9
Рубин 1.8.6
Действие: используйте вместо этого .join
Двоеточие больше не действует в операторах When
Рубин 1.9
Рубин 1.8.6
Действие: используйте точку с запятой или новую строку
Блочные переменные теперь затеняют локальные переменные
Рубин 1.9
Рубин 1.8.6
Hash.index
Не рекомендуетсяРубин 1.9
Рубин 1.8.6
Действие: используйте Hash.key
Fixnum.to_sym
Теперь ушелРубин 1.9
Рубин 1.8.6
(Продолжение) Рубин 1.9
svn.ruby-lang.org/repos/ruby/trunk/lib/rake.rb
Хеш-ключи теперь неупорядочены
Рубин 1.9
Рубин 1.8.6
Заказ - это порядок размещения
Более строгие регулярные выражения Unicode
Рубин 1.9
Рубин 1.8.6
tr
иRegexp
теперь разбираемся в UnicodeРубин 1.9
pack
иunpack
Рубин 1.8.6
BasicObject
Более жестокий, чемBlankSlate
Рубин 1.9
Рубин 1.8.6
Действие: Используйте :: Math :: PI
Изменения делегирования
Рубин 1.9
Рубин 1.8.6
Дефект 17700Использование $ KCODE вызывает предупреждения
Рубин 1.9
Рубин 1.8.6
instance_methods
Теперь массив символовРубин 1.9
Рубин 1.8.6
Действие: заменить instance_methods.include? с method_defined?
Кодировка исходного файла
Базовый
Emacs
Шебанг
Реальная резьба
Что нового?
Альтернативный синтаксис для символа как хэш-ключей
Рубин 1.9
Рубин 1.8.6
Блокировать локальные переменные
Рубин 1.9
Методы инъекции
Рубин 1.9
Рубин 1.8.6
to_enum
Рубин 1.9
Нет блока? Enum!
Рубин 1.9
Лямбда-сокращение
Рубин 1.9
Рубин 1.8.6
Комплексные числа
Рубин 1.9
Десятичное число по-прежнему не используется
Рубин 1.9
Regex «Свойства»
Рубин 1.9
Рубин 1.8.6
Сплат в середине
Рубин 1.9
Волокна
Рубин 1.9
Разрывные значения
Рубин 1.9
«Вложенные» методы
Рубин 1.9
HTH!
источник
Одним из огромных отличий будет переход от интерпретатора Matz к YARV , виртуальной машине с байт-кодом, которая значительно повышает производительность.
источник
Многие теперь рекомендуют язык программирования Ruby вместо кирки - точнее говоря, в нем есть все детали различий 1.8 / 1.9.
источник
Еще несколько изменений:
Возврат одноэлементного массива splat:
аргументы массива
источник