Swift:具有多个模式的切换大小写无法绑定到变量

布恩

在官方的《Swift编程语言》指南中,它是关于开关的情况的:“ ...如果情况包含与控件表达式匹配的多个模式,则这些模式均不能包含常量或变量绑定。”

包含多个模式是什么意思?

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

这意味着具有多个模式的案例标签无法声明变量。

这是允许的:

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, 0):
    println("(\(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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在数据绑定中切换大小写

来自分类Dev

枚举:切换大小写类型的变量

来自分类Dev

java切换大小写无法解析为变量

来自分类Dev

在PHP中切换大小写是否在函数中运行多个大小写?

来自分类Dev

Kotlin“何时”不间断(Java中切换大小写的选项具有)

来自分类Dev

切换带有两个变量的大小写

来自分类Dev

切换elseif切换大小写

来自分类Dev

使用Scala模式匹配而不是Java切换大小写的优点是什么?

来自分类Dev

使用Scala模式匹配而不是Java切换大小写的优点是什么?

来自分类Dev

Swift:从字典键切换大小写倍数值

来自分类Dev

由于大小写不敏感,无法切换分支:未跟踪的工作树文件?

来自分类Dev

无法在大小写切换语句中使用if更改if语句

来自分类Dev

传递对象以切换大小写Javascript

来自分类Dev

切换大小写失败,返回NaN

来自分类Dev

切换语句默认大小写失败

来自分类Dev

R语言:切换数字的大小写

来自分类Dev

在C中切换大小写帮助

来自分类Dev

尝试用ASCII值切换大小写

来自分类Dev

在JavaScript函数中切换大小写

来自分类Dev

切换大小写枚举类型

来自分类Dev

SQL大小写值切换

来自分类Dev

切换大小写而不是其他

来自分类Dev

使用SwiftLint切换大小写格式问题

来自分类Dev

根据标志条件切换大小写

来自分类Dev

在Codeignitner中切换大小写

来自分类Dev

在Android中使用枚举切换大小写

来自分类Dev

尝试使用ASCII值切换大小写

来自分类Dev

数组索引的切换大小写

来自分类Dev

#default 每次都输出 - 切换大小写