J'essayais d'écrire une simple méthode d'aplatissement de tableau, mais cela ne fonctionne pas avec une variable d'instance. Cela fonctionne seulement en utilisant des variables de classe. Quelqu'un peut-il me dire pourquoi? et comment le faire fonctionner en utilisant des variables d'instance.Array Flatten ne fonctionne pas (Instance variable nil)
class Array
@y = []
def flatten_array
self.each do |x|
if x.class.to_s != 'Array'
@y << x
else
x.flatten_array
end
end
return @y
end
end
a = [1,2,3,4,5]
b = [6,7,8]
c = [9,10]
a1 = [12,13,a,b,c]
puts a1.inspect
b1 = a1.flatten_array
puts b1.inspect
Juste curieux: qu'essayez-vous d'accomplir? Il y a déjà un 'Array # flatten', vous savez ... –
Pourquoi voulez-vous utiliser une variable d'instance au lieu d'une variable locale? –
Il y a une faute de frappe pour "Instance" dans le titre. –