下面是一个基于数组元素实例属性的简单索引搜索:
chips = [Chip.new(:white), Chip.new(:black)]
color = :white
idx = chips.index { |chip| chip.color == color }
@chips
无论数组中的值是什么,无论局部变量color
设置为什么,这总是返回 nil 。color
如果被替换为明确的符号,例如,这仍然适用:white
,这是一个期望找到的示例索引。
这是类声明:
class Chip
attr_reader :color, :value
def initialize(color)
@color = color
case color
when :white
@value = 1
when :red
@value = 5
when :green
@value = 25
when :black
@value = 100
end
end
end
有谁知道为什么会这样?