首先,我已经阅读了一些“类似”的查询,但似乎没有一个具体描述我遇到的问题。大多数是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
}
但它似乎被迫了。有谁知道实际解决这个问题的“正确”方法是什么?我认为更多的是如何计算结构中的属性,我无法回忆或搜索任何答案。我真的很感激任何帮助。