当我遇到函数实验室中的最后一个问题时,运行Swift App Development课程。
想法是编写一个函数,它接受4个Double参数并返回一个String,同时嵌套一个前面的函数,它共享3个相同的参数并返回一个Double。 Parent Function比较嵌套func的返回值,并将其与第4个参数(小于)进行比较,然后返回2个字符串中的一个。
func pacing(currentDistance: Double, totalDistance: Double, currentTime: Double, goalTime: Double) -> String {
func calculatePace(currentDistance: Double, totalDistance: Double, currentTime: Double) -> Double {
let predictedFinish = (currentTime / currentDistance) * totalDistance
return predictedFinish
}
if calculatePace() <= goalTime {
print("Keep it up!")
} else {
print("You've got to push harder!")
}
}
calculatePace()&lt; = goalTime让我绊倒了。我得到的错误是:缺少参数的参数。我尝试过引用的预测.Finish。我得到错误使用未解析的标识符。我试过打电话给整个
calculatePace(currentDistance: Double, totalDistance: Double, currentTime: Double)
我得到的错误是:无法转换类型的值&#39; Double.Type&#39;预期参数类型&#39; Double&#39;请记住,这是一个初学者班级,所以我可能会过度思考这个问题。有线索吗?
答案 0 :(得分:1)
有两个问题导致此代码无法编译。 1.你试图调用不存在的calculatePace()
(实际函数有3个参数),2。你实际上没有返回String
。解决了这两个问题之后,这段代码对我来说很好。
func pacing(currentDistance: Double, totalDistance: Double, currentTime: Double, goalTime: Double) -> String {
func calculatePace(currentDistance: Double, totalDistance: Double, currentTime: Double) -> Double {
let predictedFinish = (currentTime / currentDistance) * totalDistance
return predictedFinish
}
if calculatePace(currentDistance: currentDistance, totalDistance: totalDistance, currentTime: currentTime) <= goalTime {
return "Keep it up!"
} else {
return "You've got to push harder!"
}
}