You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Kotlin转Swift:switch语句is判断后如何实现智能/隐式类型转换?

Swift Switch类型判断优化方案

Swift的switch支持模式匹配绑定,可以直接在case分支中完成类型校验与对象绑定,彻底消除冗余的as!强制转换。

优化后的代码如下:

do {
    let weatherData = try JSONDecoder().decode(type, from: data)
    
    switch weatherData {
    case let typedData as WeatherData:
        // 直接使用已绑定的typedData,无需额外转换
        if let firstWeather = typedData.weather.first {
            print(getWeatherCondition(conditionId: firstWeather.id))
        }
    default:
        print("Unknown type")
    }
} catch {
    print(error)
}

补充说明

  • 用case let typedData as WeatherData的写法,同时完成了「类型校验」和「类型绑定」两步操作,后续可直接使用typedData,完全替代原代码里的is判断加as!转换。
  • 额外优化了原代码中first!的强制解包,换成可选绑定if let避免运行时崩溃,这也是Swift中处理可选类型的推荐写法。

内容的提问来源于stack exchange,提问作者Bitwise DEVS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:47:04