【问题标题】:Basic Adding - Expression was too complex error (Swift)基本添加 - 表达式太复杂错误(Swift)
【发布时间】:2015-07-11 07:41:36
【问题描述】:

尝试将一些简单的数字相加。在最后一行出现“表达式太复杂,无法在合理的时间内解决......”错误。为什么?肯定不能再简单了?

    let year   = calendar.component(.CalendarUnitYear, fromDate: inputGregorianDate)
    let month  = calendar.component(.CalendarUnitMonth, fromDate: inputGregorianDate)  
    let day    = calendar.component(.CalendarUnitDay, fromDate: inputGregorianDate)

    // Conversion Calulation
    let AGR = year/100
    let BGR = AGR/4
    let CGR = 2 - AGR + BGR
    var EGR = 0.00
    if (month <= 2 ) {
        EGR = 365.25 * Double(year + 4716)
    } else {
        EGR = 365.25 * Double(year + 4716);
    }
    let FGR = 30.6001 * Double(month + 1);
    let dateJulian = Double(CGR + day + EGR + FGR - 1524.5)

【问题讨论】:

    标签: swift


    【解决方案1】:
    // Conversion Calulation
    let AGR = Double(year) / 100
    let BGR = AGR / 4.0
    let CGR = 2.0 - AGR + BGR
    var EGR = 0.0
    
    // this conditional doesn't make any sense
    if (month <= 2 ) {
        EGR = 365.25 * Double(year + 4716)
    } else {
        EGR = 365.25 * Double(year + 4716)
    }
    
    let FGR = 30.6001 * Double(month + 1)
    let dateJulian = CGR + Double(day) + EGR + FGR - 1524.5
    

    【讨论】:

    • 是的,谢谢 - 但为什么编译器没有给出 Double/Int/Int32 转换错误呢?非常感谢,我以后会在源头上绑定这些。
    • @EdwardHasted 斯威夫特以错过领先的错误消息而闻名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    相关资源
    最近更新 更多