@proRuby

Страница 264 из 1594
Alexander
07.11.2016
12:54:07
reg101 очень ок
https://regex101.com/ немного ошибся с названием

Alexander
07.11.2016
12:54:46
Ок, значит запамятовал. Тоже стоит учесть Дмитрию
\w matches any word character (equal to [a-zA-Z0-9_]) underscore ловит

Google
Alexander
07.11.2016
12:56:19
https://regex101.com/r/8WTKKV/2 нормально ловит, без всяких \b кстати, прикольно, что можно шарить (прям со строкой тестовой)

0x58
07.11.2016
12:57:21
Бей на сервисы
А как узнать когда применять сервисы? И где вообще можно узнать что это, как и зачем?

Alex
07.11.2016
12:57:46
https://blog.engineyard.com/2014/keeping-your-rails-controllers-dry-with-services

Space
07.11.2016
13:33:05
Ребят, привет. Может кто ищет работу сейчас? Ищем Ruby on Rails разработчика: https://netology-group.ru/career#vacancy10 У нас два технологичных образовательных проекта: http://foxford.ru/ http://netology.ru/ Видео с нашим офисом: https://www.youtube.com/playlist?list=PL9gzo2sIIvllJZuMBeSDcxEhOt12QjNdB Пишите в личку или на: t.dolgova@netology-group.ru

Anon
07.11.2016
13:36:29
Как называются конструкции вида a.each_with_index.reduce(0) { |prev, (cur, i)| #... }?

Roman
07.11.2016
13:37:35
Блок же, нет?

Alex
07.11.2016
13:37:42
Итераторы

Anon
07.11.2016
13:38:00
я имею в виду чейнинг этих итераторов и добавочные аргументы блока в круглых скобках

Alex
07.11.2016
13:38:15
какие добавочные аргументы?

Anon
07.11.2016
13:38:26
(сur, i)

Alex
07.11.2016
13:38:41
Это не добавочные аргументы

это все аргументы которые тебе в блок передал итератор

Anon
07.11.2016
13:39:21
каким образом это все вместе оказывается в одном блоке

Google
Alex
07.11.2016
13:41:28
block.call(*args)

как то так я думаю.

просто каждый итератор добавляет к args какие то свои данные еще.

Pavel
07.11.2016
14:08:30
Можно использовать yield в коде итератора

yield x1, x2, ...., xN передает аргументы в блок

x = yield возвращает аргументы из блока

А сам yield - это вызов блока

Alex
07.11.2016
14:10:08
yield это генератор а не итератор

я как то обжегся совсем недавно пытаясь сделать цепочку через yield, оказывается ему блок обязательно нужен

Pavel
07.11.2016
14:10:41
Генератор чего?

Alex
07.11.2016
14:10:41
А итератор делается через Enumerate

Данных, чего.

Pavel
07.11.2016
14:11:36
Достаточно определить метод, а при вызове метода прикрепить блок. С yield код получается короче

Alexander
07.11.2016
14:11:53
yield это генератор а не итератор
ruby yield if block_present? # or block.call if block примерно так

Alex
07.11.2016
14:11:58
your_func.to_a сработает?

Иван
07.11.2016
14:13:02
yield это генератор а не итератор
что значит генератор данных? yield же вроде просто передает управление блоку

Alex
07.11.2016
14:13:09
ну да

а если ты не передашь блок а передашь цепочку?

получится ошибка "давай блок"

Pavel
07.11.2016
14:13:51
Цепочку после блока?

Google
Alex
07.11.2016
14:14:00
о госпаде

напиши пример функции генератора пожалуйста прям сюда в чат.

Alexander
07.11.2016
14:14:37
Цепочку после блока?
я понял о чём он. да, с &block проще управлять и делать цепочки

Pavel
07.11.2016
14:14:51
Я не понял

О чем он

Alex
07.11.2016
14:14:57
напиши пример функции генератора пожалуйста прям сюда в чат.

Ну так сначала напиши пример подобной функции

Pavel
07.11.2016
14:15:16
Генератора?

Alex
07.11.2016
14:15:19
да ....

Pavel
07.11.2016
14:15:28
Мы вроде про итераторы говорили

Alex
07.11.2016
14:15:35
yield это генератор

Иван
07.11.2016
14:16:08
ничёнепонимаю

Alex
07.11.2016
14:16:10
надо ща самому с этим вопросом разобраться по быстрому

Alexander
07.11.2016
14:16:11
Pavel
07.11.2016
14:16:18
Ща

Секунду

Alex
07.11.2016
14:16:27
нет
Что нет?

Alexander
07.11.2016
14:16:37
Что нет?
не генератор, не путай людей

yield — это часть синтаксиса языка, как и объявление блока (поэтому ее нельзя переопределить). Когда в теле метода мы вызываем yield, то подразумеваем следующее: «отдай управление блоку, а когда тот закончит, верни управление этому методу». что из этого «генератор»?

Иван
07.11.2016
14:17:23
вот такой же вопрос

Google
Pavel
07.11.2016
14:17:33
Я тоже не понимаю, почему он называет его гегератором

Alexander
07.11.2016
14:17:33
yield почти block.call, только когда у тебя нет аргумента &block, но при этом извне кидаешь блок

Alex
07.11.2016
14:18:15
Ладно возможно я в рубях неправ с терминологией.

В жабаскрипте это генератор афаик

#!/usr/bin/env ruby def myfunc yield 1 yield 2 end p myfunc() $ ./yield_example.rb ./yield_example.rb:3:in `myfunc': no block given (yield) (LocalJumpError) from ./yield_example.rb:7:in `<main>'

Alexander
07.11.2016
14:18:57
отличие yield от &block в том, что если ты из метода, в котором принимаешь блок, хочешь отдать этот блок другому методу — тебе достаточно передать его как аргумент. если юзаешь yield — у тебя есть только block_given? и всё, не передашь

yield пытается выполнить не смотря ни на что. как block.call у тебя выбросит эксепшен «не знаю метод call для `nil`», если ты не будешь проверять

Admin
ERROR: S client not available

Pavel
07.11.2016
14:22:12
допустим, что так

Alex
07.11.2016
14:22:40
yield 1 if block_given? как я писал выше и не будет эксепшенов
Я знаю как с блоками работать. Я говорю что это неудобно. #!/usr/bin/env ruby def myfunc Enumerator.new do |y| y.yield 1 y.yield 2 end end p myfunc().to_a $ ./yield_example.rb [1, 2]

Beemo
07.11.2016
14:23:01
всем привет

Alexander
07.11.2016
14:23:06
def each_with_yield @items.each { |item| yield item } end def each_with_block(&block) @items.each(&block) end

Alex
07.11.2016
14:23:16
yield пытается выполнить не смотря ни на что. как block.call у тебя выбросит эксепшен «не знаю метод call для `nil`», если ты не будешь проверять
Я знаю как работает yield, не первый день на свете живу. Я конкретно про то что его нельзя в цепочку загнать, а енумератор можно.

Alexander
07.11.2016
14:23:56
Это что?
не первый день на свете живёшь же, поймёшь ?

Pavel
07.11.2016
14:24:09
холивар

еее

Alex
07.11.2016
14:24:15
Костыль для блоко-подхода? а почему бы просто не юзать енумератор?

Lupsick
07.11.2016
14:24:23
всем привет
борду собрался пилить?

Google
Beemo
07.11.2016
14:24:32
Alexander
07.11.2016
14:24:35
Beemo
07.11.2016
14:24:38
сорян

Pavel
07.11.2016
14:24:54
короче

Alex
07.11.2016
14:25:05
Я знаю отличия двух типов блоков ? я говорю что блоки не всегда удобны.

Pavel
07.11.2016
14:25:08
использовать yield или &block дело каждого

Alex
07.11.2016
14:25:54
для меня правда сюрпризом оказалось что Enumerator по умолчанию не lazy

Alexander
07.11.2016
14:26:11
использовать yield или &block дело каждого
yield нельзя прокинуть, но сложно придумать пример, может позже найду

Иван
07.11.2016
14:27:52
Я знаю отличия двух типов блоков ? я говорю что блоки не всегда удобны.
ты к тому что надо бы возвращать enum объект если блока не передали?

Alex
07.11.2016
14:28:07
что то вроде того. Я про то что блоки в цепочку не засунешь.

Для меня это странно было потому что в джаваскрипте yield вроде как просто итератор возвращает

Иван
07.11.2016
14:29:05
if block_given? ... else self.to_enum end

Alex
07.11.2016
14:29:21
интересный линк ?

Anon
07.11.2016
14:29:45
а по какому принципу эти добавочные аргументы идут в блок, почему оборачиваются в круглые скобки? Я язык генераторов-итераторов плохо понимаю

Pavel
07.11.2016
14:29:53
а лол

Alex
07.11.2016
14:29:58
да и сайт интересный

Pavel
07.11.2016
14:30:49
объясните пожалуйста про генератор

я так и нифига не понял

Страница 264 из 1594