我在使用 index.js 时发现了一些奇怪的行为。
#Defined in the class's initialize
@my_list = [] of Type
index = @my_list.index { |i| i.value == 2 } # => 0
@my_list[0] # => 2
@my_list[index] # => error
我得到错误:
没有重载匹配 'Array(Type)#[]' 类型 (Int32 | Nil)
不知道为什么索引不起作用,因为索引 = 0。
编辑:
更多信息。如果我这样做:
if index == nil
#Do something
#error => undefined method '>=' for Nil (compile-time type is (Int32 | Nil))
elsif index >= 0
#Do something else
end
我明白。它可能是 nil,但由于我已经在检查它是否为 nil,所以这里应该没有问题。我在想前面的代码片段遇到了同样的问题。