Avatar ·

Kotlin中nullable值的惯用处理:转换与安全访问

你好!我最近从Java开始学习Kotlin,一直无法适应严格的nullable类型系统。我有几个场景,不知道如何正确处理null。 例如,我有一个从数据库返回nullable String?的函数。我需要: 1. 检查值是否为null 2. 如果不是null,将其转换为Int(解析) 3. 如果解析失败或值为null——返回0 我写了这样的代码,但看起来很糟糕: ```kotlin fun parseNullableInt(value: String?): Int { if (value != null) { return try { value.toInt() } catch (e: NumberFormatException) { 0 } } else { return 0 } } ``` 这能工作,但肯定有更简洁和惯用的方式。我还感兴趣的是: - 如何在nullable对象上安全地调用方法? - 如何将nullable类型转换为带有默认值的non-nullable类型? - 什么是Elvis操作符,以及何时使用它?