gpt4 book ai didi

ruby - 动态常量赋值 main.rb :6: Ruby

转载 作者:行者123 更新时间:2023-12-04 10:03:32 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Dynamic constant assignment

(7 个回答)


7 个月前关闭。




在循环中命名变量时出现该错误。该方法的重点是打印数组中唯一具有唯一奇偶校验的元素的索引位置。例如,该方法应该为以下输入数组打印“3”,因为它是唯一的奇数,其他所有内容都是偶数:[2, 4, 6, 3, 8, 10]。更具体地说,它指出了下面“奇数”和“偶数”变量的错误(“main.rb:7: dynamic constant assignment Odd = numbers[i] % 2 == 1”)。

  def test(numbers)
i=1
countOdd = 0
countEven = 0
Odd = numbers[i] % 2 == 1
Even = numbers[i] % 2 == 0

while i < numbers.length
if Odd
countOdd += 1
else countEven +=1
end
i+=1
end

if countEven == 1
print Odd.index
else print Even.index
end
end

最佳答案

当您在 Ruby 中定义大写变量时,它是一个常量 - 它是一种不允许更改值的特殊变量(好吧,从技术上讲,您可以使用 const_set 更改它,但这在这里并不重要)。

由于这个限制,Ruby 不允许您从函数内部更改常量。它假设函数会被多次调用,这会导致常量改变值,正如我刚刚提到的那样是非法的。

所以,快速修复,只需更换您的 OddEven小写版本 oddeven .这样它们就是常规变量而不是常量。

关于ruby - 动态常量赋值 main.rb :6: Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61707668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com