Swift:具有多个模式的Switch case无法绑定到变量
发布时间:2020-12-14 04:33:18 所属栏目:百科 来源:网络整理
导读:在官方 Swift Programming Language指南中,有关切换案例的说法: “…如果案例包含多个与控制表达式匹配的模式,则这些模式都不能包含常量或变量绑定.” 包含多个模式意味着什么? 解决方法 这意味着具有多个模式的案例标签无法声明变量. 这是允许的: let so
在官方
Swift Programming Language指南中,有关切换案例的说法:
“…如果案例包含多个与控制表达式匹配的模式,则这些模式都不能包含常量或变量绑定.” 包含多个模式意味着什么? 解决方法
这意味着具有多个模式的案例标签无法声明变量.
这是允许的: let somePoint = (1,1) switch somePoint { // Case with multiple patterns without binding case (0,_),(_,0): println("((somePoint.0),(somePoint.1)) is on an axis") default: println("((somePoint.0),(somePoint.1)) is not of an axis") } 这也是允许的: let somePoint = (1,1) switch somePoint { // Case with single patterns with binding case (0,let y): println("(0,(y)) is on an axis") case (let x,0): println("((x),0) is on an axis") default: println("((somePoint.0),(somePoint.1)) is not of an axis") } 但是,这是禁止的: let somePoint = (1,1) switch somePoint { // Case with multiple patterns that have bindings case (0,let y),(let x,(y)) is on an axis") default: println("((somePoint.0),(somePoint.1)) is not of an axis") } 以上产生错误: error: 'case' labels with multiple patterns cannot declare variables (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |