2014-11-18 2 views
0

В настоящее время существует много подобных вопросов, но не один, где предупреждение происходит в «случае, когда выражение»Избегайте: уже инициализирован константа в «случае, когда»

я получаю предупреждение: уже не инициализируется константа для каждого (я знаю, что они называются разными в рубине «switch» = «case» | «case» = «when», но я думаю, что вы поняли идею)

Мой код:

Type = case entity.class.to_s 
when 'A' then 1 
when 'B' then 10 
when 'C' then 2 
when 'D' then 7 
else raise "Unknown Type" 
end 

Как избавиться от предупреждения, потому что я просто инициализирую его при t op, или я что-то пропустил?

Отредактировано: My Code находится внутри цикла. Например:

loopcounter = 0 
EntityType = 'test' 
while loopcounter < 4 
    EntityType = case 'StDm' 
    when 'StDm' then 1 
    when 'Drt' then 10 
    when 'Pst' then 2 
    when 'StSnet' then 7 
    else raise "Unknown EntityType" 
    end 
    loopcounter += 1 
end 
puts EntityType 
+3

После инструкции _case_ вы пытаетесь переназначить константу 'Type' с некоторым значением. С того места вы получали _warnings_./ –

+0

Смотрите это, чтобы остановить предупреждения http://stackoverflow.com/questions/17447532/what-is-the-use-of-usr-local-bin-ruby-w-at-the -start-of-a-ruby-program –

+0

Невозможно получить это предупреждение из кода, который вы опубликовали. Это должно происходить из какого-то кода, который вы не отправляли, или из какого-то взаимодействия с каким-то кодом, который вы не отправляли, поэтому мы не можем вам помочь. –

ответ

0

Я так глуп.

Из-за заглавной буквы в начале моей переменной рубин думает о своей постоянной. конечно ... ARGH ...

Ну, теперь ясно, почему произошла ошибка.

Смежные вопросы