【发布时间】:2017-10-13 13:13:21
【问题描述】:
是否可以测试特定的枚举类型在切换字符串时是否可以通过rawValue来初始化,而不是使用if let?
static func getCurrency(from code: String) -> Currency? {
if let fiatCurrency = Fiat(rawValue: code) {
return fiatCurrency
} else if let cryptoCurrency = Blockchain(rawValue: code) {
return cryptoCurrency
} else {
return nil
}
}
这可能类似于类型转换,currency 遵循我的货币协议:
switch currency {
case let fiatCurrency as Fiat:
return getFiatFormatting(for: value, fiatCurrency: fiatCurrency)
case let blockchain as Blockchain:
return getCryptoFormatting(for: value, blockchain: blockchain)
case let token as Token:
return getTokenFormatting(for: value, token: token)
default:
return nil
}
谢谢!
【问题讨论】:
标签: ios swift enums switch-statement