swift - Swift 中的 2 行重复代码是否首选单独的函数?
问题描述
我正在设计一个小游戏,并决定根据从提出问题到按下输入按钮之间经过的秒数来分配积分的初始方式。
我知道最佳实践是创建一个函数以在要重复行时调用,但在我看来,当只有两行重复四次时调用它可能有点过分。使用下面的代码,为每个部分的最后两行创建一个函数对我来说是“正确的”还是首选?
//Assigns points to score based on elapsed time and updates score
func updateScore() {
timer.invalidate()
if timeToAnswer < 3 {
questionScore = 10 //10 points for answering so quickly
score = score + questionScore //Updates score
timeToAnswer = 0 //Resets var timeToAnswer
}
else if (timeToAnswer >= 3) && (timeToAnswer < 6) {
questionScore = 7
score = score + questionScore
timeToAnswer = 0
}
else if (timeToAnswer >= 6) && (timeToAnswer < 11) {
questionScore = 10 - timeToAnswer
score = score + questionScore
timeToAnswer = 0
}
else {
questionScore = 1
score = score + questionScore
timeToAnswer = 0
}
}
非常感谢任何提供帮助或建议的人。
解决方案
你可以用更好的方式做到这一点。您也可以使用 switch 语句。反正:
func updateScore() {
timer.invalidate()
if timeToAnswer < 3 {
questionScore = 10
}
else if (timeToAnswer >= 3) && (timeToAnswer < 6) {
questionScore = 7
}
else if (timeToAnswer >= 6) && (timeToAnswer < 11) {
questionScore = 10 - timeToAnswer
}
else {
questionScore = 1
}
score = score + questionScore //Updates score
timeToAnswer = 0 //Resets var timeToAnswer
}