Size: a a a

2020 September 18

D

Denis in RubyRush
👍
источник

DG

Denis Gavrilin in RubyRush
Дмитрий
Всем спасибо все равно, так долго я даже в универе не задумывался над задачами почти 14часов
Хорошо, что больше проблем возникать не будет, вух 😇
источник

VV

Vadim Venediktov in RubyRush
@papajim123321, пока отдыхаете, посмотрите этот стрим, чтобы ещё раз потом не встрять на 14 часов где-нибудь
источник

M

Michael in RubyRush
Дмитрий
Всем спасибо все равно, так долго я даже в универе не задумывался над задачами почти 14часов
Вам просьба на будущее:

1. Не постите 20 мелких сообщений подряд. Напишите одно, обдуманное, опишите в нем проблему/вопрос подробно

2. Постите код и вывод консоли текстом (читайте в FAQ как), а не фотки экрана).
источник

Д

Дмитрий in RubyRush
Понял учту
источник

V

Valery in RubyRush
Игорь Марчук
я не про этот метод) имел ввиду)
Провёл небольшое исследование по методу succ.

Судя по доке на класс Range метод succ вызывается на объекте являющемся начальной точкой диапазона при итерировании через диапазон с помощью метода each и методов модуля Enumerable.
Т.е. метод Integer#succ позволяет задавать целочисленные диапазаны, а метод Integer#next делает целые числа "похожими" на энумераторы (экземпляры класса Enumerator).

Вот эксперимент с методом Integer#succ:
valery@valery-machine:~$ ruby -v
ruby 1.8.7 (2008-05-31 patchlevel 0) [x86_64-linux]
valery@valery-machine:~$ irb
irb(main):001:0> (1..5).each { |x| print x }
12345=> 1..5
irb(main):002:0> (1..5).to_a
=> [1, 2, 3, 4, 5]
irb(main):003:0> class Integer
irb(main):004:1>   undef succ
irb(main):005:1> end
=> nil
irb(main):006:0> (1..5).each { |x| print x }
TypeError: can't iterate from Fixnum
irb(main):007:0> (1..5).to_a
TypeError: can't iterate from Fixnum


Но если переключиться в более современную версию Ruby, то оказывается, что просто так "поломать" метод Range#each не получается:
alery@valery-machine:~$ rbenv global 2.6.5
valery@valery-machine:~$ ruby -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
valery@valery-machine:~$ irb
irb(main):001:0> (1..5).each { |x| print x }
12345=> 1..5
irb(main):002:0> (1..5).to_a
=> [1, 2, 3, 4, 5]
irb(main):003:0> class Integer
irb(main):004:1>   undef succ
irb(main):005:1> end
=> nil
irb(main):006:0> (1..5).each { |x| print x }
12345=> 1..5
irb(main):007:0> (1..5).to_a
=> [1, 2, 3, 4, 5]
irb(main):008:0> 1.succ
NoMethodError (undefined method `succ' for 1:Integer)


Если заглянуть в исходник метода Range#each, то можно увидеть, что со времён ruby 1.8.7 он сильно "поумнел".
источник

VV

Vadim Venediktov in RubyRush
В тему
источник

Э

Эдем in RubyRush
Да весь Руби очень сильно поумнел по сравнению с 1.8.7
источник

ИМ

Игорь Марчук... in RubyRush
Valery
Провёл небольшое исследование по методу succ.

Судя по доке на класс Range метод succ вызывается на объекте являющемся начальной точкой диапазона при итерировании через диапазон с помощью метода each и методов модуля Enumerable.
Т.е. метод Integer#succ позволяет задавать целочисленные диапазаны, а метод Integer#next делает целые числа "похожими" на энумераторы (экземпляры класса Enumerator).

Вот эксперимент с методом Integer#succ:
valery@valery-machine:~$ ruby -v
ruby 1.8.7 (2008-05-31 patchlevel 0) [x86_64-linux]
valery@valery-machine:~$ irb
irb(main):001:0> (1..5).each { |x| print x }
12345=> 1..5
irb(main):002:0> (1..5).to_a
=> [1, 2, 3, 4, 5]
irb(main):003:0> class Integer
irb(main):004:1>   undef succ
irb(main):005:1> end
=> nil
irb(main):006:0> (1..5).each { |x| print x }
TypeError: can't iterate from Fixnum
irb(main):007:0> (1..5).to_a
TypeError: can't iterate from Fixnum


Но если переключиться в более современную версию Ruby, то оказывается, что просто так "поломать" метод Range#each не получается:
alery@valery-machine:~$ rbenv global 2.6.5
valery@valery-machine:~$ ruby -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
valery@valery-machine:~$ irb
irb(main):001:0> (1..5).each { |x| print x }
12345=> 1..5
irb(main):002:0> (1..5).to_a
=> [1, 2, 3, 4, 5]
irb(main):003:0> class Integer
irb(main):004:1>   undef succ
irb(main):005:1> end
=> nil
irb(main):006:0> (1..5).each { |x| print x }
12345=> 1..5
irb(main):007:0> (1..5).to_a
=> [1, 2, 3, 4, 5]
irb(main):008:0> 1.succ
NoMethodError (undefined method `succ' for 1:Integer)


Если заглянуть в исходник метода Range#each, то можно увидеть, что со времён ruby 1.8.7 он сильно "поумнел".
Круто) но меня интересовал больше вопрос) кто быстрее работает. Инкремент через + или next или succ
источник

ИМ

Игорь Марчук... in RubyRush
Сегодня кстати снова занимался мазахизмом) кодя под виндой)
источник

ИМ

Игорь Марчук... in RubyRush
Прогресс есть) mysql2 плагин допилили) он теперь хоть компилируется) но один фиг не работает на руби 2.7
источник

ИМ

Игорь Марчук... in RubyRush
postgres. отдельная песня) нет поддержки ru_RU.UTF-8
источник

ИМ

Игорь Марчук... in RubyRush
только windows-1251
источник

ИМ

Игорь Марчук... in RubyRush
C Mongodb и SQLIte3 вроде проблем не заметил)
источник

ИМ

Игорь Марчук... in RubyRush
Надо еще Redis протестить) слышал там нет последний вроде версий под винду)
Ну и для разнообразия) Сфинкса и Еластик Серч
источник

ИМ

Игорь Марчук... in RubyRush
Ну это я все на обычной винде) без wsl2
источник

DM

Dmitriy Tensei Malys... in RubyRush
ну это совсем изврат с обычной виндой
источник

DM

Dmitriy Tensei Malys... in RubyRush
там даже с sqlite можно траблы поймать
источник

SU

Serg Udo in RubyRush
Dmitriy Tensei Malyshev
там даже с sqlite можно траблы поймать
Это все развлекухи, пока Рельсы и деплоя нет.
источник

DM

Dmitriy Tensei Malys... in RubyRush
я даж незнаю) это прям бдсм в чистом виде, как будто учить больше нечего :D
источник