如何为 swift 中的数字创建范围
How to create a range for number in swift
我正在创建一个 iOS 应用程序,但我 运行 遇到了障碍,需要帮助来克服。我的问题是我的应用程序使用了一个计分器,我希望该应用程序为用户提供特定分数的特定奖牌。例如,如果用户得分为 20,我希望应用程序给他们一枚铜牌,如果用户得分介于 21-49 之间,他们将获得银牌。我希望你明白了。我试过这个:
if String(score) > 55{
medal = SKSpriteNode(imageNamed:"medalG")
}
var x = 20
var y = 50
if (String(score) = x...y){
medal = SKSpriteNode(imageNamed:"medalS")
}
if String(score) < 20{ //this line always gives me issues
medal = SKSpriteNode(imageNamed:"medalB")
}
我试过用这个
替换第二行'if'
if (String(score) = x..<y){ }
但这也给我带来了问题
我也试过了...
if String(score)<50 && String(score)>20{ }
但这也带来了问题,请大家帮忙
Range 有一个方法 contains
,您可以使用它来检查特定值是否位于范围的端点之间。但是您最好还是使用 switch
语句——它的区间匹配基本上是为这种情况设计的。
您可以执行以下操作:
// assume score is an Int defined above
switch score {
case 0...20:
medal = SKSpriteNode(imageNamed: "medalB")
case 21...49:
medal = SKSpriteNode(imageNamed: "medalS")
case 50...60:
medal = SKSpriteNode(imageNamed: "medalG")
default:
print("It is inconceivable that you are this good.")
}
请记住,switch 语句必须详尽无遗,即必须有一个 case 来匹配您要切换的表达式的每个可能值。这就是为什么我在上面添加了默认值。
您可以使用 "pattern-match" 运算符 ~=:
if 20 ... 50 ~= String(score) {
println("success")
}
或者带有表达式模式的 switch 语句(在内部使用模式匹配运算符):
switch String(score) {
case 20 ... 50:
println("success")
default:
println("failure")
}
寻求更多帮助Pattern matching
我正在创建一个 iOS 应用程序,但我 运行 遇到了障碍,需要帮助来克服。我的问题是我的应用程序使用了一个计分器,我希望该应用程序为用户提供特定分数的特定奖牌。例如,如果用户得分为 20,我希望应用程序给他们一枚铜牌,如果用户得分介于 21-49 之间,他们将获得银牌。我希望你明白了。我试过这个:
if String(score) > 55{
medal = SKSpriteNode(imageNamed:"medalG")
}
var x = 20
var y = 50
if (String(score) = x...y){
medal = SKSpriteNode(imageNamed:"medalS")
}
if String(score) < 20{ //this line always gives me issues
medal = SKSpriteNode(imageNamed:"medalB")
}
我试过用这个
替换第二行'if'if (String(score) = x..<y){ }
但这也给我带来了问题
我也试过了...
if String(score)<50 && String(score)>20{ }
但这也带来了问题,请大家帮忙
Range 有一个方法 contains
,您可以使用它来检查特定值是否位于范围的端点之间。但是您最好还是使用 switch
语句——它的区间匹配基本上是为这种情况设计的。
您可以执行以下操作:
// assume score is an Int defined above
switch score {
case 0...20:
medal = SKSpriteNode(imageNamed: "medalB")
case 21...49:
medal = SKSpriteNode(imageNamed: "medalS")
case 50...60:
medal = SKSpriteNode(imageNamed: "medalG")
default:
print("It is inconceivable that you are this good.")
}
请记住,switch 语句必须详尽无遗,即必须有一个 case 来匹配您要切换的表达式的每个可能值。这就是为什么我在上面添加了默认值。
您可以使用 "pattern-match" 运算符 ~=:
if 20 ... 50 ~= String(score) {
println("success")
}
或者带有表达式模式的 switch 语句(在内部使用模式匹配运算符):
switch String(score) {
case 20 ... 50:
println("success")
default:
println("failure")
}
寻求更多帮助Pattern matching