在另一个练习中,您添加了一个计算属性,该属性表示跑步的平均英里时间。但是,您可能想要一个用户可以在跑步前使用的种类的计算器,以了解他们需要平均多少英里时间才能在给定时间内跑步给定距离。在这种情况下,在
RunningWorkout
上使用类型方法可以在没有RunningWorkout
实例的情况下进行访问可能会有所帮助。向
RunningWorkout
添加类型方法mileTimeFor(distance:time:)
,其中距离和时间均为Double
类型。此方法的返回值应为Double
类型。方法的主体应计算所需的平均英里时间,以覆盖传入的时间。假设距离以米为单位,一英里为1600米。从结构体外部调用该方法并打印结果以确保其正常工作。
pt2
在RunningWorkout上具有一些表示单位转换的类型属性可能会有所帮助(即米到英里,英尺到米等)。返回并为meterInFeet添加类型属性,并将其分配给3.28084。然后为mileInMeters添加类型属性,并将其分配为1600.0。在下面打印这两个值。
struct RunningWorkout {
var distance: Double
var time: Double
var elevation: Double
static func mileTimeFor(distance:Double, time:Double) -> Double {
return (distance / time) * 1600
}
}
let run = RunningWorkout.mileTimeFor(distance: 1600, time: 10.39)
print(run)