Size: a a a

2020 February 01

RM

R M in RubyRush
да, можно без рекурсии )
def self.filenames(names)
 hsh = Hash.new(0)
 new_names = []
 names.each do |name|
   hsh[name] += 1
   if hsh[name] == 1
     if new_names.include? name
       new_names << name + "(#{hsh[name]-1})"
     else
       new_names << name
     end
   else
     new_names << name + "(#{hsh[name]-1})"
   end
 end
 new_names
end
name = ["photo", "photo", "doc", "photo(1)", "photo"]

p filenames(name)

#["photo", "photo(1)", "doc", "photo(1)(1)", "photo(2)"]

я просто не понял решение, решил попробовать сам, потому что рекурсию не смог понять. ну вышло, громоздко, но с одним циклом без рекурсий
источник

V

Vitaliy in RubyRush
Roman Golovin
Переслано от Roman Golovin
подскажите, плиз. не получается загуглить - irb в терминале перестал по русски печатать. что я нажал и как это пофиксить обратно?
Тут наверное много можно вариантов предложить для фикса. Как ставили руби ?
источник

V

Vitaliy in RubyRush
Проблема после накатки Каталины стала возникать?
источник

RG

Roman Golovin in RubyRush
Vitaliy
Тут наверное много можно вариантов предложить для фикса. Как ставили руби ?
Да все работало нормально
источник

RG

Roman Golovin in RubyRush
Нет, что-то нажал, какую-то комбинацию сочетания клавиш, видимо
источник

RG

Roman Golovin in RubyRush
Vitaliy
Тут наверное много можно вариантов предложить для фикса. Как ставили руби ?
Руби встроена в ос
источник

V

Vitaliy in RubyRush
Roman Golovin
Руби встроена в ос
Вы на старой версии работаете? Насколько помню штатная версия 2.1 вроде
источник

RG

Roman Golovin in RubyRush
2.6.3
источник

RG

Roman Golovin in RubyRush
источник

V

Vitaliy in RubyRush
2.6.3 точно по умолчанию не идет с системой, значит ставили через манагер rvm/rbenv
источник

V

Vitaliy in RubyRush
Как вариант, переустановить rvm/rbenv, не знаю что Вы могли такого нажать )
источник

V

Vitaliy in RubyRush
источник

V

Vitaliy in RubyRush
источник

V

Vitaliy in RubyRush
Vitaliy
2.6.3 точно по умолчанию не идет с системой, значит ставили через манагер rvm/rbenv
Удалось ?
источник

RG

Roman Golovin in RubyRush
Vitaliy
Удалось ?
устанвливаю 2.7.0.
источник

RG

Roman Golovin in RubyRush
Vitaliy
Удалось ?
все починилось с утсановкой 2.7.0 через  rmv.  Спасибо!
источник

V

Vitaliy in RubyRush
Roman Golovin
все починилось с утсановкой 2.7.0 через  rmv.  Спасибо!
👌
источник

E

Eugene in RubyRush
R M
да, можно без рекурсии )
def self.filenames(names)
 hsh = Hash.new(0)
 new_names = []
 names.each do |name|
   hsh[name] += 1
   if hsh[name] == 1
     if new_names.include? name
       new_names << name + "(#{hsh[name]-1})"
     else
       new_names << name
     end
   else
     new_names << name + "(#{hsh[name]-1})"
   end
 end
 new_names
end
name = ["photo", "photo", "doc", "photo(1)", "photo"]

p filenames(name)

#["photo", "photo(1)", "doc", "photo(1)(1)", "photo(2)"]

я просто не понял решение, решил попробовать сам, потому что рекурсию не смог понять. ну вышло, громоздко, но с одним циклом без рекурсий
для начала, зачем вам там self?
источник

E

Eugene in RubyRush
а далее, решение неправильное
источник

E

Eugene in RubyRush
names = ["photo", "photo", "photo(1)", "photo(1)"]

# даёт на выходе

["photo", "photo(1)", "photo(1)(1)", "photo(1)(1)"]

# а должно

["photo", "photo(1)", "photo(1)(1)", "photo(1)(2)"]
источник