Isso acontece pois o valor de cima, o input
, é uma String com valor de "1.9".
Na linha de baixo o atributo valorRecebido, vai ter sua atribuicao dentro do try
val valorRecebido: Double? = try {
E dentro do try, teremos um método que transforma String em Double:
input.toDouble()
O valor que vai ser transformado é do input, que é uma String, com valor de "1.9", que vai ser convertido em Double, com valor de 1.9
Código completo para explicar melhor:
//valor da String entrada definida como "1.9"
val entrada:String = "1.9"
//a definicao do valor recebido dentro do try
val valorRecebido: Double? = try {
//vai tentar converter o atributo entrada em Double
entrada.toDouble()
//Se tiver a exceção NumberFormatException ele irá fazer:
} catch (e: NumberFormatException) {
//mensagem escrita: Erro na conversao
println("Erro na conversao")
//mensagem de excecao e localizacao do mesmo
e.printStackTrace()
//o valor vai ser atribuido de nulo
null
}
if (valorRecebido != null) {
//se o valor não for nulo vai imprimir Valor recebido: $valorRecebido
println("Valor recebido: $valorRecebido")
} else {
//se o valor for nulo vai imprimir Valor inválido
println("Valor inválido")
}