Ho un codice che calcola l'ennesima radice di un numero. In questo momento, quel metodo funziona solo su Fixnum, perché l'ho definito all'interno della classe Fixnum. Sarebbe molto facile da fare soloAggiungere lo stesso metodo a più classi
class Float
#same code as was in Fixnum
end
ma che sembra inutile. Non ho idea di come chiamare dinamicamente le classi. Ho provato:
classes = [Fixnum, Float]
classes.each do |x|
x.instance_eval do
def root(pow)
return self ** (1/pow.to_f)
end
end
end
ma quello non ha funzionato. Come faccio a fare questo? Nota: Dopo la pubblicazione, ho realizzato che questo potrebbe essere più adatto per Programmers.SE, in quanto è teorico, nonché basato su un singolo problema. Sentitevi liberi di migrare di conseguenza ...
Nota che nel precedente 'return' non è necessario (ed è non idiomatica). – Phrogz