Eugene
то таб ему не пробел, то ; забудешь где-нить потом ищешь с огнем
Eugene
нет чтоб в вебморде тык-пык и все збс
Alexander
нет чтоб в вебморде тык-пык и все збс
ты на руби уже начал писать?
Eugene
да каво там, я не Володя..
Serge
то таб ему не пробел, то ; забудешь где-нить потом ищешь с огнем
Ну сказали же, что два пробела надо использовать! :)
Serge
Ну и, как бы, рубям пофиг на отступы должно быть
Igor
может это рубитон
Serge
❯ cat test.rb ["hello", "lal", "жопа"].each do |word| puts word end ❯ ruby test.rb hello lal жопа
Igor
на самом деле я бы пару фич из раби в пехто засунул
Eugene
Чочо?
да я уже хотел тебя потерзать, но сам нашел потерянный ; в конфиге нжинкса :)
Serge
(я всю жись был уверен, что по фичам руби и удав на 99% совпадают)
Igor
Это какие?
ну мне нравится оператор «?» и bool, для питона это бы органично смотрелось
Igor
и там емнип регулярки более интегрированы в язык
Igor
но это не точно
Igor
да не, в раби же можно типа условия там хитрые делать, когда воросик в конце ставишь, нет?
Igor
ещё в раби удобны конструкции do if cond
Igor
мне их не хватает
Igor
не, это тернарный оператор
Igor
их есть и в пехтоне, и в сях, да
Serge
А про что тогда?
Igor
Serge
А, погоди, понял
Serge
Это просто имя метода такое :)
Serge
Но удобно и читаемость повышает, да
Igor
вот чото типа такого, но он вроде ещё фичастее там было
Igor
да, точно
Igor
там ? можно в имена методо
Igor
вместо is_
Igor
вооот
Igor
вспомнил)
Serge
Это если метод такой есть :)
Igor
ну там нельзя классу, например, задать метод 'alive?', который типа true/false возвращает, если какое-то условие?
Serge
Я для одной хуитки, например, сделал вот такое: def quirks?(time_filter) DEVICE_QUIRKS.any? do |q| q[:name] == name && … end end
Igor
будет типа connection.alive?
Igor
ваще пуля
Serge
И ты такой берёшь и делаешь if device.quirks? и работает
Igor
да, заебись
Igor
особенно классно, когда
Eugene
эй погромисты! астанавитесь!
Igor
device.send('aaaaa') if device.alive?
Igor
вот в питоне это бы норм смотрелось, имхо
Igor
с его отступами и прочей человекопонятностью
Igor
пздц как вы это читаете
норм, быстро привыкаешь
Igor
я до пехтона с рубей начинал как раз
Stanislav
для меня выглядит как перл прост :) нихуя не понятно
Igor
но это было оооч давно и не долго
Stanislav
привык уже к сишечке и явушке
Igor
сишечка топчек, что тут скажешь
Igor
жаль, на ней не приходится писать
Stanislav
ну хз, меня вот бесит что в си исключений нет. че-нить не так - получи сегфолт ! ладно хоть коредамп складывает
Eugene
ну хз, меня вот бесит что в си исключений нет. че-нить не так - получи сегфолт ! ладно хоть коредамп складывает
и почему тогда сетевые "скрипты" на си не хуячат? сама тема ж была бы, чуть что - отстрелил себе ногу
Eugene
а то расслабились с этими петонами
Stanislav
сложно же. во всяких питонах искаропки уже всякие хэшмапы и работа со строками, динамичесские массивы и классы. а в си что? сидишь такой malloc, realloc, malloc, опа память потекла 😃 или сегфолт.
Evgeniy
втопку
Serge
и почему тогда сетевые "скрипты" на си не хуячат? сама тема ж была бы, чуть что - отстрелил себе ногу
Потому что берёшь Crystal, пишешь рубёвый код и компилишь его в бинарник, и никакой Си не нужен! :)
Serge
пздц как вы это читаете
Там всё просто же — .any? возвращает true, если условие внутри блока (do…end) верно хотя бы для одного элемента
Serge
В блоке через | | задаём имя для абстрактной переменной, на которой будем проверять условие, в неё будут подставляться элементы того, для чего позвали any?
Serge
Вот и получается так. Можно и похоже на Си блоки оформлять: my_cool_array.each { |element| element += 100500 }
Evgeniy
погромисты
Serge
А можно сделать по умному вот так (то же самое): my_cool_array.map! { |elem| elem + 100500 }
Serge
@blademd, а select в петоне есть?
Igor
select?
Igor
switch?
Serge
Ща покажу
Serge
arr = [1,2,3,4,5,6,7,8] => [1, 2, 3, 4, 5, 6, 7, 8] arr.select {|a| a.odd?} => [1, 3, 5, 7] arr.select {|a| a.even?} => [2, 4, 6, 8]
Stanislav
А можно сделать по умному вот так (то же самое): my_cool_array.map! { |elem| elem + 100500 }
ну это уже читаемо, тем более map много куда подвезли)
Serge
Типа возвращает массив, элементы которого соответствуют условию внутри блока
Serge
есть filter, filter(lambda x: x % 2 == 0, list)
А так можно? arr.partition {|a| a.even?} => [[2, 4, 6, 8], [1, 3, 5, 7]]
Igor
там богатый набор фп фич — filter, map, reduce