Ruby 为什么';这个逻辑在初始化方法中不起作用吗?
后来当我Ruby 为什么';这个逻辑在初始化方法中不起作用吗?,ruby,Ruby,后来当我p我的骰子数组时,我看到@面仍然是“Q” …,[#。。。 这是怎么回事?示例方法从数组中选择了一个随机元素。我想你会发现如果@letters等于['Q'],您的代码将正常工作。您还应该发布有关如何检查值的信息。这可能没有魔力,您可以显示完整的调用和代码堆栈吗?我不确定是否正确理解了这个问题。您想说,@face在每次运行初始化时都会变成“Q”(在这种情况下,您应该检查您的随机数种子)或者,即使选择了字母“Q”,它最终会是“Q”,即使您希望它是“Qu”< /代码>只有当这封信被选中时,问题
p
我的骰子数组时,我看到@面仍然是“Q”
…,[#。。。
这是怎么回事?示例方法从数组中选择了一个随机元素。我想你会发现如果@letters等于['Q'],您的代码将正常工作。您还应该发布有关如何检查值的信息。这可能没有魔力,您可以显示完整的调用和代码堆栈吗?我不确定是否正确理解了这个问题。您想说,@face
在每次运行初始化时都会变成“Q”
(在这种情况下,您应该检查您的随机数种子)或者,即使选择了字母“Q”
,它最终会是“Q”
,即使您希望它是“Qu”< /代码>只有当这封信被选中时,问题才被编辑来显示我如何检查@面……用不同的方式解决问题,因为RuSTAM可能是正确的关于堆栈中其他地方的逻辑。如果逻辑看起来很好,那么我会考虑关闭这个问题。谢谢!我不能复制你所描述的:
def initialize(letters)
@letters = letters
@face = letters.sample # letters is an array of all letters from A to Z
if @face == "Q"
@face = "Qu"
end
@visited = false
@coord = []
end
..., [#<Dice:0x007f907b032948 @letters=["H", "I", "M", "N", "Q", "U"], @face="Q", @visited=false, @coord=[]>, ...