Salve a tutti!!!
La domanda e’ la seguente:
Perche’ se scrivo
…
n=6
def fact(n)
if n==0
1
else
nfact(n-1)
end
end
puts fact(n)
…
Mi da’ il risultato giusto.Mentre se scrivo:
…
puts ‘Scrivi un numero’
puts ’ ’
n=gets
def fact(n)
if n==0
1
else
nfact(n-1)
end
end
puts fact(n)
…
Mi da’ il seguente errore:
undefined method `-’ for #String:0x3468f4 (NoMethodError)
Dove e’ che sbaglio?
puts fact(n)
…
Mi da’ il seguente errore:
undefined method `-’ for #String:0x3468f4 (NoMethodError)
Dove e’ che sbaglio?
Prova a fare un cast da stringa ad intero simile a questo.
n = gets.to_i
def fact(n)
if n==0
…
Bye!
Grazie Andrea. Adesso funziona!
Ma non capisco perche’ devo fare cosi’…forse perche’ n e’ considerato
come una string?
Mi leggero’ meglio i manuali…
Ciao e obrigado!!