Comments 31
А теперь, не запуская интерпретатор Ruby, скажите, чему будут равны x,y,z?
Если появились сомнения, как должно быть, значит, не такая уж и красота...
Да, спецификаций на Ruby нет, поэтому может быть как угодно. Как Матцумото в последней версии интерпретатора напишет, так и будет...
У меня вот вышло
x,y,z=1,10,100
x,y,z=y+z,x+z,x+y
Если появились сомнения, как должно быть, значит, не такая уж и красота...
Да, спецификаций на Ruby нет, поэтому может быть как угодно. Как Матцумото в последней версии интерпретатора напишет, так и будет...
У меня вот вышло
=> [110, 101, 11]
, а можно было бы ждать и [110, 210, 320]
... От лукавого такой синтаксис. 0
судя по п.2 будет [110, 101, 11], т.к. это усложненный вариант обмена значениями
0
Странно, как можно было ждать [110, 210, 320]? Ведь, насколько я знаю, в большинстве языков программирования оператор присваивания сначала выполняет выражение, находящееся справа от него, тоесть считает [y+z,x+z,x+y], не изменяя самих значений, следовательно результат [110, 101, 11] вполне очевиден.
+1
Для правильного ответа достаточно знать приоритет всех операторов.
0
Правильный ответ [110, 101, 11]. Я в уме посчитал, без интерпритатора, как и просили. На мой мозг спецификации тоже нигде нет, но ждать от него других результатов было бы глупо, как и ждать других результатов от Ruby :)
0
>не такая уж и красота
Согласитесь, любую красивую вещь можно превратить в некрасивую. И сделать это довольно просто. Вот пример:
Попробуйте без интерпретатора отгадать, что делает эта конструкция:
(1...10).to_a.sort_by{rand}.to_s.to_i
И запишите эквивалентную ей :)
Согласитесь, любую красивую вещь можно превратить в некрасивую. И сделать это довольно просто. Вот пример:
Попробуйте без интерпретатора отгадать, что делает эта конструкция:
(1...10).to_a.sort_by{rand}.to_s.to_i
И запишите эквивалентную ей :)
0
Multiple assignement есть в Perl, Python, Lua, Magma,…
Он был придуман давно и отчасти для того, чтобы делать a, b = b, a. Поэтому сомнений насчет логики выполнения здесь быть не может.
Для этой конструкции все уже описано и обсуждено. В Ruby сделано так, как все давно уже привыкли — сначала целиком вычисляется правая часть, потом все присваивается левой. Не Matz это придумал и не ему менять логику multiple assignement.
Он был придуман давно и отчасти для того, чтобы делать a, b = b, a. Поэтому сомнений насчет логики выполнения здесь быть не может.
Для этой конструкции все уже описано и обсуждено. В Ruby сделано так, как все давно уже привыкли — сначала целиком вычисляется правая часть, потом все присваивается левой. Не Matz это придумал и не ему менять логику multiple assignement.
0
Ну один в один питон :D
+1
Не совсем. 4 не сработало. Доступ к элементам строки, как к элементам массива есть, но элементы изменять нельзя.
А есть ли в Питоне способ проверки пуст ли массив, подобный 6?
Мне нравится Питон, но отсутствие фигурных скобок {} и использование отступов для выделения блоков я считаю странностью.
А есть ли в Питоне способ проверки пуст ли массив, подобный 6?
Мне нравится Питон, но отсутствие фигурных скобок {} и использование отступов для выделения блоков я считаю странностью.
0
Да, строки в питоне неизменяемые.
Да, например можно унаследовать стандартный массив, добавив такой метод.
Я долго писал на перле, теперь - на питоне, и вот, возвращаясь на перл, остро ощущаю избыточность всяких фигурных и простых скобок :)
Да, например можно унаследовать стандартный массив, добавив такой метод.
Я долго писал на перле, теперь - на питоне, и вот, возвращаясь на перл, остро ощущаю избыточность всяких фигурных и простых скобок :)
+1
та же фигня. :)
...Есть ли смысл после Питона изучать Руби? Спрашиваю без желаний запустить холивар, действительно интересно
...Есть ли смысл после Питона изучать Руби? Спрашиваю без желаний запустить холивар, действительно интересно
0
Я руби не знаю, но если верно то, что говорят "руби вырос из перла", то думаю, это два эквивалентных языка. И тут уже вопрос личных предпочтений. Попробуй, попытка не пытка :)
0
Просто попробуйте.
Эти языки во многом схожи.
Часто в сравнении с питоном за руби приводят довод, что это "Чистый ООП язык".
В чем руби откровенно уступает - это в "обеспеченности". Пока нет большого коммьюнити, развитых библиотек и большого количества информации о языке. Мало "живых" примеров.
Но все это со временем появится.
Эти языки во многом схожи.
Часто в сравнении с питоном за руби приводят довод, что это "Чистый ООП язык".
В чем руби откровенно уступает - это в "обеспеченности". Пока нет большого коммьюнити, развитых библиотек и большого количества информации о языке. Мало "живых" примеров.
Но все это со временем появится.
0
Ruby очень похож на питон в плане синтаксиса.
Python:
def returner(value)
return value
Ruby:
def returner(value)
value
end
Похоже в целом, только в Руби блоки явно заканчиваются кейвордом "end".
Но в руби зато нет жутких питоновских historical reason'ов типа:
something.___do_domeshing___
и почему удаление элемента хэша это del hash[key] а не hash.del(key)? (эту строчку у Юлика (http://live.julik.nl/2005/11/php-is-so-90s) взял).
Без холиваров - я считаю - изучать Руби стоит.
Python:
def returner(value)
return value
Ruby:
def returner(value)
value
end
Похоже в целом, только в Руби блоки явно заканчиваются кейвордом "end".
Но в руби зато нет жутких питоновских historical reason'ов типа:
something.___do_domeshing___
и почему удаление элемента хэша это del hash[key] а не hash.del(key)? (эту строчку у Юлика (http://live.julik.nl/2005/11/php-is-so-90s) взял).
Без холиваров - я считаю - изучать Руби стоит.
0
Как-то раз мне захотелось посмотреть на руби.
Посмотрел ролик про RoR - не особенно впечатлило.
А когда попытался узнать, чем же он всем так понравился, в основном натыкался на описание такого вот "синтаксического сахара".
Посмотрел ролик про RoR - не особенно впечатлило.
А когда попытался узнать, чем же он всем так понравился, в основном натыкался на описание такого вот "синтаксического сахара".
0
Числа из пункта 3 работают так же и в C, и в Java (это к тому, что не так уж это и неожиданно). Кстати, числа - они не дробные, они с плавающей точкой.
0
Хороший материал, однако, думаю что на http://pleac.sourceforge.net/ поболей фич различных языков показано.
+8
Ох, огромное Вам спасибо. Это именна та ссылка, которая мне нужна. Если б мог, поставил бы плюсик :) А пока, ещё раз: большущее спасибище Вам!
0
Хороший сайт, я про него совсем забыл.
Теперь, когда я могу голосовать за комментарии, с радостью ставлю вам плюс!
Теперь, когда я могу голосовать за комментарии, с радостью ставлю вам плюс!
0
отличнейшая ссылка, спасибо. занес в букмарки.
0
Третьим пунктом вы сэкономили мне много времени, спасибо!
0
Sign up to leave a comment.
Ruby-фишки