在Swift2中,您可以使用类似于以下代码的内容:
switch productIdentifier {
case hasSuffix("q"):
return "Quarterly".localized
case hasSuffix("m"):
return "Monthly".localized
default:
return "Yearly".localized
}
它会起作用。在Swift 3中,我能完成上述工作的唯一方法是:
switch productIdentifier {
case let x where x.hasSuffix("q"):
return "Quarterly".localized
case let x where x.hasSuffix("m"):
return "Monthly".localized
default:
return "Yearly".localized
}
似乎失去了Swift2版本的清晰度 - 它让我觉得我错过了一些东西。以上是一个简单的版本。我很好奇是否有人有更好的处理方式?
答案 0 :(得分:10)
我不知道这是否比在您的示例中使用值绑定更好,但您可以使用下划线,
switch productIdentifier {
case _ where productIdentifier.hasSuffix("q"):
return "Quarterly".localized
case _ where productIdentifier.hasSuffix("m"):
return "Monthly".localized
default:
return "Yearly".localized
答案 1 :(得分:3)
您似乎只是检查productIdentifier的最后一个字符。你可以这样做:
switch productIdentifier.characters.last {
case "q"?:
return "Quarterly".localized
case "m"?:
return "Monthly".localized
default:
return "Yearly".localized
}