[英]swift: how to replace if else on switch case statements
我有這個if else
檢查:
var aItem: CGFloat = 0
if item == 0 {
aItem = 457
} else if item == 1 {
aItem = 576
} else if item == 2 {
aItem = 758
}
print(aItem)
我想用switch
case語句替換這段代碼。 怎么做?
我試過了:
var aItem: CGFloat = 0
switch item {
case _ where item == 0:
aItem = 457
case _ where item == 1:
aItem = 576
case _ where item == 2:
aItem = 758
default:
print("this is impossible")
}
它是有效的但是最好的解決方案嗎? 也許可以以某種方式簡化這段代碼?
什么是更好用? if else還是切換案例陳述?
它應該寫成:
let aItem: CGFloat
switch item {
case 0:
aItem = 457
case 1:
aItem = 576
case 2:
aItem = 758
default:
aItem = 0
print("this is impossible")
}
print(aItem)
如果您的item
只能是0,1或2,我會這樣做:
let anItem: CGFloat = [457, 576, 758][item]
在這種情況下,使用if else
或switch
之間幾乎沒有區別。 選擇你最喜歡的。 if
和switch
有優勢。 使用哪種最符合您需要的代碼/邏輯。 或者,在這種情況下,不要使用任何一種。
這是另一個有趣的替代方案(例如,在初始化實例屬性時可能很有用:
struct SomeType {
let someProperty: Int = {
let x = 0
switch x { // Unfortunately, `x` can't be an instance member of self.
case 0: return 457
case 1: return 576
case 2: return 758
default:
fatalError("this is impossible")
}
}()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.