インデックスを使用すると、奇妙な動作が発生します。
#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
エラーが発生します:
タイプ (Int32 | Nil) の 'Array(Type)#[]' に一致するオーバーロードはありません
インデックス = 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 かどうかを確認しているので、ここで問題はないはずです。前のコード スニペットでも同じ問題が発生していると思います。