模式匹配作为swift中的函数表达式
发布时间:2020-12-14 04:35:27 所属栏目:百科 来源:网络整理
导读:Swift是一个非常实用的语言,函数式语言都是关于表达式而不是语句,这就是开关模式匹配让我感到困惑的原因. 所有的例子都是这样的: switch x {case 0: print("positive")case 0: print("negative")case 0: print("zero")} 但我想做这样的事情: let result =
Swift是一个非常实用的语言,函数式语言都是关于表达式而不是语句,这就是开关模式匹配让我感到困惑的原因.
所有的例子都是这样的: switch x { case > 0: print("positive") case < 0: print("negative") case 0: print("zero") } 但我想做这样的事情: let result = switch x { case > 0: "positive" case < 0: "negative" case 0: "zero" } 目前我能看到的唯一方法是: var result: String? switch x { case > 0: result = "positive" case < 0: result = "negative" case 0: result = "zero" } if let s = result { //... } 这显然不像基于’表达式’的switch语句那样优雅.是否有任何工作或替代方案或苹果需要做些什么来增强语言? 解决方法
Switch语句不能直接用作Swift中的表达式.但是,有一种解决方法可以做你想要的.可以在闭包中写入switch语句,如下所示:
let result : String = { switch x { case _ where x > 0: return "positive" case _ where x < 0: return "negative" default: return "zero" } }() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |