Supongamos que tengo un objeto enumerable enum
y ahora quiero obtener el tercer elemento.consulte un valor de enumerador con índice especificado
Sé que uno de un enfoque general es convertir en una matriz y luego acceder con índice como:
enum.to_a[2]
Pero de esta manera se creará una matriz temporal, que puede ser ineficiente.
Ahora uso:
enum.each_with_index {|v, i| break v if i == 2}
Pero esto es bastante feo y redundante.
¿Cuál es la forma más eficiente de hacer esto?
Esto se ve mejor, pero, si quiero un número muy grande como índice, que todavía va a generar una matriz temporal muy grande para él. –
@ShouYa: agregué otra opción sin arreglos mientras estaba comentando. Todavía tienes que marcar 'enum' uno por uno, pero no hay nada que puedas hacer al respecto (en general). –
Usar siguiente es una sugerencia inteligente. Sentiría curiosidad por ver cuáles son las implicaciones del rendimiento en comparación con convertir una colección en una matriz. –