Swift:乘以四个Double变量时出错

时间:2014-09-29 02:52:25

标签: swift compiler-errors

我一直在“AnalyzeInput”类的return语句中收到错误,“无法使用类型为'($ T18,Double)'的参数列表调用'*',这没有任何意义,因为所有四个变量在方法头中定义为Double。以下是相关的两个类,删除了不相关的代码:

class AnalyzeInput {

     // Constructor, initialize InputInfo, add information to it etc etc

    var remainingToAnalyze: String
    var information: InputInfo

    func findOutput() {
        return information.getVolumeAmount() * information.getMeasurement().getMiliplier() * information.getConcentration() * information.getCompoundMolarMass()
    }
}

class InputInfo {
    var volumeAmount: Double = 0
    var measurementType: Measurement = Measurement(short: "null", singular: "null", plural: "null", multiplier: 0)
    var concentration: Double = 0
    var compoundMolarMass: Double = 0

    init () {
    }

    func setVolumeAmount(volumeAmount: Double) {
        self.volumeAmount = volumeAmount
    }

    func setMeasurementType(measurement: Measurement) {
        self.measurementType = measurement
    }

    func setConcentration(concentration: Double) {
        self.concentration = concentration
    }

    func setCompound(compoundMolarMass: Double) {
        self.compoundMolarMass = compoundMolarMass
    }

    func getVolumeAmount() -> Double {
        return volumeAmount
    }

    func getMeasurement() -> Measurement {
        return measurementType
    }

    func getConcentration() -> Double {
        return concentration
    }

    func getCompoundMolarMass() -> Double {
        return compoundMolarMass
    }
}

如何修复错误?

1 个答案:

答案 0 :(得分:2)

findOutput的返回类型不是Double。如果要从中返回double,则需要正确声明返回类型。此外,您不需要在第二个类中使用所有这些getter / setter方法 - 您只需使用点运算符来访问属性。最后,“乘数”在您的回访中拼写错误。所以:

func findOutput() -> Double {
    return information.volumeAmount * information.measurement.multiplier * information.concentration * information.compoundMolarMass
}