EPICAGMERNATE
EPICAGMERNATE

Reputation: 37

Warning : previous definition of Variable was here - Ruby

Every single time I load my program, even for the fist time, it says

file.rb:9: warning: already initialized constant W_mum
file.rb:6: warning: previous definition of W_mum was here.

a little help here?

W_mum = gets.to_i

elsif (W_mum = 1)

Upvotes: 2

Views: 3452

Answers (1)

Holger Just
Holger Just

Reputation: 55758

Ruby uses two different "storage bins" for data: variables and constants. In your source code, you can identify them y their first letter: constants always have a capital letter at the start of their name, variables a lower-case letter.

In your case, you thus have a constant named W_mum. Now, when you first set a value to a constant and then later set a different value to it, Ruby will show a warning (as such: you can set new values to constants, but you should not).

Now, as for why Ruby warns here: in your elsif, you are actually assigning the constant the value 1. This might be a bug though. Instead of an assignment with =, you likely intended to use a comparison here, using the == operator.

Upvotes: 2

Related Questions