Avatar ·

Como converter uma String em Long em Kotlin? Métodos seguros e tratamento de erros

Olá, colegas! Comecei a estudar Kotlin recentemente (migrei do Java) e me deparei com uma tarefa aparentemente simples. Preciso ler o ID do usuário de um campo de texto no aplicativo (que é uma string) e passá-lo para uma função que espera um Long. Em Java, eu costumava usar `Long.parseLong(str)` ou `Long.valueOf(str)`, envolvendo em um try-catch. Mas em Kotlin, vejo vários métodos diferentes: `.toLong()`, `.toLongOrNull()`, algumas funções de extensão... E fiquei confuso sobre qual deles é o correto e seguro. Aqui está um exemplo do meu código, que atualmente lança uma exceção: ```kotlin fun main() { val userInput: String = "123abc" // o usuário digitou letras acidentalmente val userId: Long = userInput.toLong() // NumberFormatException! println("User ID: $userId") } ``` Entendo que preciso tratar erros, mas quero fazer isso de forma elegante, no "estilo Kotlin". Além disso, e se a string puder ser `null`? Ou conter espaços? Existe uma maneira universal que não lance exceção?