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

Swift表达式无法在合理时间内完成类型检查问题求助

解决Swift编译器类型检查超时问题

这个报错是因为Swift编译器处理混合类型(Int与Double)的复杂表达式时,类型推导负担过重,无法在合理时间内完成检查。

解决方案1:拆分表达式为子步骤

把复杂计算拆分成多个独立子项,同时显式转换参数类型,让编译器的类型检查逻辑更清晰:

func calculateCalSpent(age: Int, height: Int, currentWeight: Int, activityLevel: Int ) -> Int{
    // 显式将Int参数转为Double,消除类型推导歧义
    let ageDouble = Double(age)
    let heightDouble = Double(height)
    let weightDouble = Double(currentWeight)
    
    // 拆分计算子项,每个子项类型明确
    let weightContribution = 13.75 * weightDouble
    let heightContribution = 5.003 * heightDouble
    let ageContribution = 6.755 * ageDouble
    
    let totalCalories = 66.47 + weightContribution + heightContribution - ageContribution
    let cal = Int(totalCalories)
    
    print(cal)
    return cal
    // Men kg cm
}

解决方案2:显式转换表达式内的参数

如果不想拆分步骤,也可以直接在运算时给每个Int参数添加Double()转换,明确类型:

func calculateCalSpent(age: Int, height: Int, currentWeight: Int, activityLevel: Int ) -> Int{
    let cal = Int(66.47 + (13.75 * Double(currentWeight)) + (5.003 * Double(height)) - (6.755 * Double(age)))
    print(cal)
    return cal
    // Men kg cm
}

两种方式的核心都是减少编译器的类型推导工作量,让运算的类型逻辑更明确,从而避免超时报错。

内容的提问来源于stack exchange,提问作者Enver Enes Keskin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:55:16