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=[]>, ...