• Ruby Yield. Понял как использовать. Помню что он определяется как "функция, вызывающая блок кода". Но интуитивного понимания сути почему-то нет.

Replies (20)

  • @wyldrodney, странно
  • @azzz, Я не понимаю где надо использовать чтобы было правильно.
  • @wyldrodney, где потребуется. Итераторы, колбэки.
  • @azzz, Что такое колбэк?
  • @wyldrodney, callback.
  • @azzz, Не, я знаю что в жс это нечто вроде анонимной функции с Си, нов руби такого термина не встречал. Покажи код :)
  • @wyldrodney, нетукода. Надо тебе сделать что-то после того, как твоя функция, например, получит соеденение с сервисом — вперёд.
  • @azzz, Для этого есть масса решений. Читать >_>
  • @wyldrodney, Вот тебе пример: pastebin.com
    Правда вряд ли это поможет… :}
  • @Tenno-Seremel, Твой код) Клёвый, только непонятный.
  • @wyldrodney, each_target выплёвывает наружу разные объекты (может быть больше одного), над которыми надо производить действия. Всё просто :}
  • @Tenno-Seremel, Вот это я понял) Но сами операторы как-то непривычно используются. Стиль не такой, как обычно вижу.
  • @wyldrodney, Нопример? Ты ж итераторами теми же наверняка пользовался :)
  • @Tenno-Seremel, yield я бы заменил на return, это более очевидно) Параметры вроде self:one я бы разбил на self и one в отдельных переменных. Т.е. у тебя всё в куче. Странно видеть такие решения, вот)
  • @wyldrodney, return 100500 раз из одного метода? R U SIRIUS?
  • @Tenno-Seremel, Его вообще можно не писать :3
    Но, с другой стороны, у тебя либо одно, либо другое, два куска кода подряд выполняться не будут. И они всегда вычисляют какое-то значение. Для этого придуман ret. Это более традиционный подход. А Елд.. ну я запутлсо, в общем)
  • @wyldrodney, Этот метод возвращает более одного значения, разве что ты хочешь собрать их всех сначала в массив, а потом возвращать. А потом обрабатывать обходя этот массив ещё раз в итераторе… а оно надо? Памяти надо больше, обходить ещё потом :} Плюс yield, собственно, вычисленное значение возвращает, насколько я помню. Т.е. его можно потом использовать там внутри этого each_target.
  • @Tenno-Seremel, О том и речь: очень трудновоспринимаемая структура. Т.е. плохого сказать не могу — там всё красиво и по правилам. И даже расширяемо, если уж на то пойдёт.
    Просто я никогда не видел чтобы логику выражали вот так, одной кучей))
  • @wyldrodney, Не там кучи, это тебе кажется с непривычки :)
  • @Tenno-Seremel, Но теперь я знаю как мыслят девушки))) Что-то подобное и я предполагал. Гм...