在 Swift 中将 switch 转换为 if else
Posted
技术标签:
【中文标题】在 Swift 中将 switch 转换为 if else【英文标题】:Convert switch to if else in Swift 【发布时间】:2017-11-20 14:58:49 【问题描述】:我想将 SwiftyJSON 的所有 switch 语句转换为 if-else 条件,因为 switch 语句会导致大量内存泄漏。
我几乎已经转换了所有的 switch 语句,但我被这个卡住了:
fileprivate subscript(sub sub: JSONSubscriptType) -> JSON
...
switch sub.jsonKey
case .index(let index): return self[index: index]
case .key(let key): return self[key: key]
...
public enum JSONKey
case index(Int)
case key(String)
有人可以帮帮我吗?
【问题讨论】:
【参考方案1】:switch sub.jsonKey
case .index(let index): return self[index: index]
case .key(let key): return self[key: key]
将会
if case .index(let index) = sub.jsonKey
return self[index: index]
else if case .key(let key) = sub.jsonKey
return self[key: key]
或抽象地:
switch value
case .a(let x): doFoo(x)
case .b(let y): doBar(y)
变成
if case .a(let x) = value
doFoo(x)
else if case .b(let y) = value
doBar(y)
【讨论】:
以上是关于在 Swift 中将 switch 转换为 if else的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中将 NSDateComponents 转换为 DateComponents