2012-08-28 5 views
7

Título, creo que es auto declarante. Soy un desarrollador java y quiero asegurarme de que mi matriz contenga solo valores enteros. Sé que todo en rubí es un objeto. Me resulta inconveniente recorrer el conjunto y realizar comprobaciones en cada elemento. ¿Hay algún atajo para esto en ruby?¿Puedo verificar si una matriz, p. solo contiene enteros en ruby?

Respuesta

16

Utilice Enumerable#all? con un bloque. Los números enteros son instancias de la clase Integer en ruby.

[1, 2, 3].all? {|i| i.is_a?(Integer) } # => true 
[1, 2, 3, '4'].all? {|i| i.is_a?(Integer) } # => false 
+1

* Los enteros pequeños * son fijos en Ruby. Esto no funcionará con enteros grandes. Para cubrir todos los números enter, use la clase Integer misma: 'puts [1, 2, 3, 4444444444] .all? {| i | ¿I es una? Entero} ' – Nossidge

+0

@Nossidge: sí, tienes razón. –

Cuestiones relacionadas