Conversão implícita e explícita de Numéricos
Uncategorized, ruby December 4th, 2008Falei sobre conversão implícita/explícita quando estamos trabalhando com String. Agora, chegou a vez de falar um pouco sobre conversões com classes numéricas.
A mesma confusão que encontramos quando falamos sobre os métodos to_s e to_str, encontramos quando nos deparamos com to_i, to_int, to_f, to_flt. Vamos valer da mesma regra que foi apresentada para a classe String: Conversão explícita é para os métodos curtos e implícita para os métodos longos.
Assim como o método to_str, muitas classes não definem os métodos implícitos to_int e to_flt.
Vamos ver um exemplo:
5
end
10
end
end
meu_numero = MeuNumero.new
puts meu_numero.to_i
O código acima imprime “5″, visto que chamamos o método explicitamente. Agora, quando o meu método de conversão implícita é executado? Vejamos outro exemplo:
meu_numero = MeuNumero.new
array_meu_numero = Array.new(meu_numero)
Ao executarmos o código acima, constatamos que foi criado um array com 10 posições. Isso porque quando passamos o nosso objeto (meu_numero) ele foi implicitamente convertido para um valor numérico para ser passado como parâmetro para a criação de um Array.
Recent Comments