Продолжения в Ruby

12
задан Jeff Waltzer 29 September 2008 в 16:47
поделиться

4 ответа

Да, в большинстве случаев. МРТ (1.8) поддерживала их насколько моя память достигает, Ruby 1.9 (YARV) делает это также так делает Rubinius. JRuby и IronRuby не имеют продолжений, и довольно маловероятно, что они получат их (JVM и стопка-instrospection использования CLR для безопасности)

Ruby как язык поддерживает продолжения через callcc ключевое слово. Они используются, например, для реализации Generator класс из стандартной библиотеки.

продолжения на рубиновом документе

Основанные на продолжении веб-платформы (как побережье, или один из библиотеки станд. Дуги) кажутся менее популярными. Я нашел крошечными, которые утверждают, что позволили Вам сделать дополнительные продолжения, но я никогда не использовал его.

12
ответ дан 2 December 2019 в 07:22
поделиться

Как другие уже сказали, Ruby 1.8 поддерживает продолжения.

Ruby 1.9 не поддерживал их некоторое время как бы то ни было. Они были добавлены назад некоторое время в этом году, но большинство других интерпретаторов Ruby (JRuby, IronRuby, и т.д.) не поддерживает их.

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

Прочитайте эту статью InfoQ для более всестороннего обсуждения темы.

6
ответ дан 2 December 2019 в 07:22
поделиться

neverblock использует 1,9 волокна для единственного потокового рубинового веб-сервера

1
ответ дан 2 December 2019 в 07:22
поделиться

Между прочим этот является примером перезапускаемых исключений (также называемых условиями), реализованных с использованием продолжений. Я использовал его несколько раз, и это здорово, если он есть в наборе инструментов Ruby.

2
ответ дан 2 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: