Avatar ·

Kotlin中Swift 'if let'的等价写法:如何安全解包Optional?

大家好!我最近从Swift转到Kotlin,一直找不到`if let`结构的直接对应写法。在Swift中我经常这样写: ```swift if let unwrappedValue = optionalValue { print("值存在:\(unwrappedValue)") } else { print("值不存在") } ``` 这可以安全解包Optional并在块内使用值。在Kotlin中,我了解到Optional被替换为带问号的nullable类型(例如`String?`)。但我不知道如何优雅且安全地检查值不为null,并立即将其赋值给一个新的不可变变量。我试过用`?.let`,但这不完全是我想要的: ```kotlin val optionalValue: String? = "Hello" optionalValue?.let { unwrappedValue -> println("值存在:$unwrappedValue") } ``` 问题在于`let`不方便处理else分支(当值为null时)。当然,可以用`if (optionalValue != null)`,但这样内部...