Size: a a a

2020 June 29

D

Dmitriy Y. in RubyRush
Там последние так же на алгоритмы
источник

SR

Shattered Ruby in RubyRush
друзья, подскажите, почему я не могу в методах указывать константы? пишу
def test(x)
 N=x.size-1
end
выдаёт
test.rb:5: dynamic constant assignment
 N=array.size-1
в гугле сказали, что константу надо в обычную переменную переписать, но всё равно не понятно почему так происходит
источник

RM

R M in RubyRush
ну 5 можно просто методом max в руби решить, хотя я и сортировку выбором помню как писать
источник

RM

R M in RubyRush
блин я короче не спал ночью, вообщем перебор с аккумулятором
источник

D

Dmitriy Y. in RubyRush
А зачем тебе констанат в методе? Если бы в классе, а в методе обычной переменной нужно
источник

RM

R M in RubyRush
так в методе и не объявить константу ..
источник

D

Dmitriy Y. in RubyRush
Он же тебе пишет, у тебя константа динамична, константа это неизменное значение, а ты его изменяешь
источник

D

Dmitriy Y. in RubyRush
Она у тебя от аргумента зависит, а она должна быть постоянной
источник

D

Dmitriy Y. in RubyRush
Не ясно для каких целей ты ее туда пихаешь
источник

SR

Shattered Ruby in RubyRush
Dmitriy Y.
Он же тебе пишет, у тебя константа динамична, константа это неизменное значение, а ты его изменяешь
я её инициализировал
как она может измениться при инициализации
источник

SR

Shattered Ruby in RubyRush
def get_doublicates(array)
 n=array.size-1
 (0...n).each do |i|
   (i+1..n).each do |j|
     return true if array[i]==array[j]
   end
 end
 return false
end
puts get_doublicates([1,2,3,4,4,5,5])

вот код со скуки сделал
вместо n было N
источник

m

moffire in RubyRush
Shattered Ruby
я её инициализировал
как она может измениться при инициализации
Вынесли за пределы метода. Нельзя так делать с константами
источник

Э

Эдем in RubyRush
Если очень надо, то self.class.const_set(:N, x.size - 1)
Но не очень понятно, зачем это нужно
Всё равно будет ворнинг, что константа переприсвоена
источник

Э

Эдем in RubyRush
Короче говоря, сделать так можно, но не нужно
источник

DM

Dmitriy Tensei Malys... in RubyRush
Ненадо так делать с константами
источник

SR

Shattered Ruby in RubyRush
Shattered Ruby
def get_doublicates(array)
 n=array.size-1
 (0...n).each do |i|
   (i+1..n).each do |j|
     return true if array[i]==array[j]
   end
 end
 return false
end
puts get_doublicates([1,2,3,4,4,5,5])

вот код со скуки сделал
вместо n было N
вот код, в котором я константу объявлял
по моей логике N это константа и она равна длине массива минус один
источник

SR

Shattered Ruby in RubyRush
почему он думает, что она динамическая, если я её не переприсваиваю
источник

D

Dmitriy Y. in RubyRush
Shattered Ruby
я её инициализировал
как она может измениться при инициализации
Ну так ты передаешь туда массив, с другим массивом будет другое значение, а число Пи не зависит от окружающих переменных, в общих условиях
источник

Э

Эдем in RubyRush
Shattered Ruby
почему он думает, что она динамическая, если я её не переприсваиваю
Эээ, ну она от параметра метода зависит
источник

m

moffire in RubyRush
Shattered Ruby
почему он думает, что она динамическая, если я её не переприсваиваю
Потому что у тебя она внутри метода. А метод принимает параметр, который может мзменяться
источник