实例成员“xxx”不能用于“XXX”类型 - 特别是关于锻炼扩展的iOS Swift 4教程

时间:2018-03-21 10:07:06

标签: ios swift

首先,我已经阅读了一些“类似”的查询,但似乎没有一个具体描述我遇到的问题。大多数是Swift 3及更早版本,我目前无法理解。请原谅我在这里寻求帮助的小要求。

struct Workout {
    var distance: Double
    var time: Double
    var averageHR: Int
}

extension Workout: CustomStringConvertible {
    var description: String {
        return "\(distance) metres at \(time) seconds with HR \(averageHR)"
    }


}

extension Workout {
    static var speed: Double {
        return distance / time
    }


    func harderWorkout() -> Workout {
        let newDist = distance * 2
        let newTime = time * 2
        let newAverageHR = averageHR + 40
        return Workout(distance: newDist, time: newTime, averageHR: newAverageHR)
    }
}

教程中提到的问题是“现在为Workout创建另一个扩展,并添加Double类型的属性速度。它应该是一个计算属性,返回锻炼期间每秒平均移动的米数。”

而那就是我被困住的地方,特别是按照给出的指示行事。我能做的最好的事情是使用静态函数来创建一个变通方法

static func calculateSpeed(distance: Double, time: Double) -> Double {
        var speed: Double {
        return distance / time
        }
        return speed
    }

但它似乎被迫了。有谁知道实际解决这个问题的“正确”方法是什么?我认为更多的是如何计算结构中的属性,我无法回忆或搜索任何答案。我真的很感激任何帮助。

0 个答案:

没有答案