gpt4 book ai didi

swift - 带量程的开关盒

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:55 25 4
gpt4 key购买 nike

我正在学习 Swift,并尝试在观看视频之前自己编写 Ryan Wenderlich 的游戏“Bullseye”。

我需要根据用户与目标数字的接近程度来给用户打分。我试着计算差异,然后检查范围并给用户分​​数,这就是我用 If-else 所做的(不能用 switch case 做):

private func calculateUserScore() -> Int {
let diff = abs(randomNumber - Int(bullsEyeSlider.value))
if diff == 0 {
return PointsAward.bullseye.rawValue
} else if diff < 10 {
return PointsAward.almostBullseye.rawValue
} else if diff < 30 {
return PointsAward.close.rawValue
}
return 0 // User is not getting points.
}

有没有办法更优雅地完成它或使用 Switch-Case?我不能只做 diff == 0 例如在 switch case 的情况下,因为 xCode 给我一条错误消息。

最佳答案

这应该有效。

private func calculateUserScore() -> Int {
let diff = abs(randomNumber - Int(bullsEyeSlider.value))
switch diff {
case 0:
return PointsAward.bullseye.rawValue
case 1..<10:
return PointsAward.almostBullseye.rawValue
case 10..<30:
return PointsAward.close.rawValue
default:
return 0
}
}

它在 The Swift Programming Language 中在 Control Flow -> Interval Matching 下预订。

关于swift - 带量程的开关盒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52665744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com