Avatar ·

Trabalhando com valores nullable em Kotlin de forma idiomática: transformação e acesso seguro

Olá! Recentemente comecei a estudar Kotlin depois de Java e não consigo me acostumar com o sistema estrito de tipos nullable. Tenho alguns cenários onde fico confuso sobre como lidar corretamente com null. Por exemplo, tenho uma função que retorna um nullable String? do banco de dados. Preciso: 1. Verificar se o valor não é null 2. Se não for null, convertê-lo para Int (parsing) 3. Se o parsing falhar ou o valor for null — retornar 0 Escrevi este código, mas ele parece horrível: ```kotlin fun parseNullableInt(value: String?): Int { if (value != null) { return try { value.toInt() } catch (e: NumberFormatException) { 0 } } else { return 0 } } ``` Isso funciona, mas com certeza existe uma forma mais concisa e idiomática. Também tenho interesse em: - Como chamar métodos em objetos nullable com segurança? - Como converter tipos nullable para non-nullable com valor padrão? - O que é o operador Elvis e quando usá-lo?