下面显示的是红宝石代码。
def parse_file(file)
parsed_data = {}
TOTAL = []
Maths = []
Physics = []
Chemistry = []
read_lines(file) { |line|
arr=l.split
if l.match(/TOTAL/i)
TOTAL = arr[1].to_i
end
if l.match(/maths/i)
Maths = arr[1].to_i
end
if l.match(/physics/i)
Physics = arr[1].to_i
end
if l.match(/chemistry/i)
Chemistry = arr[1].to_i
end
}
if TOTAL != Maths + Physics + Chemistry && TOTAL != 0
parsed_data[:not_matched] = "True"
end
return parsed_data
end
它提供了多个“动态常量赋值”错误:
-:3: dynamic constant assignment
TOTAL = []
^
-:4: dynamic constant assignment
Maths = []
^
-:5: dynamic constant assignment
Physics = []
^
-:6: dynamic constant assignment
Chemistry = []
^
-:10: dynamic constant assignment
TOTAL = arr[1].to_i
^
-:13: dynamic constant assignment
Maths = arr[1].to_i
^
-:16: dynamic constant assignment
Physics = arr[1].to_i
^
-:19: dynamic constant assignment
Chemistry = arr[1].to_i
^
我可以做出哪些改变,以免影响我的意图?
答案 0 :(得分:4)
将其更改为本地变量,例如total
。
答案 1 :(得分:2)
错误表示"动态常量分配"。 CAPITAL_LETTERS被视为常量,不得在代码中动态分配新值。
因此,您最好将TOTAL
更改为total
等本地变量