Avatar ·

Swift 'if let' 结构在 Kotlin 中用于安全处理 nullable 类型的等价实现

大家好!我刚从 Swift 开始学习 Kotlin,遇到了一个问题。在 Swift 中,我经常使用 `if let` 结构来安全地解包可选值。例如: ```swift var name: String? = "Alice" if let unwrappedName = name { print("Hello, \(unwrappedName)") } else { print("Name is nil") } ``` 这让我可以检查可选值中是否有值,如果有,就自动解包并在块内使用它。非常方便,可以避免强制解包。 在 Kotlin 中,我看到类型可以是 nullable(带 `?`)和 non-null。但我找不到 `if let` 的直接对应。我尝试这样写: ```kotlin var name: String? = "Alice" if (name != null) { println("Hello, $name") } ``` 但这仅在变量 `name` 在检查和使用之间不改变时才有效(编译器很聪明,这是 smart cast)。但如果我想创建一个新的 non-null 类型的变量,就像在 Swift 中那样呢?或者如果我处理的是可变变量呢?