当前位置: 首页 > 面试题库 >

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

邓昀
2023-03-14
问题内容

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

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


问题答案:

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

这是允许的:

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


 类似资料:
  • 问题内容: 考虑以下代码: 这是相当难看,我想用开关的情况下,但我该如何使用与变量? 谢谢 问题答案: 您可以使用枚举来做所有事情。我为前两个值创建了示例,其余内容可以继续。 因此,您可以致电:

  • 问题内容: 由于我有多个案件应该以相同的方式处理,因此我尝试: 但是我得到一个编译器错误。 在Java中,我是否应该逐个调用相同的函数: 有没有更简单的风格? 问题答案: 您必须为每个String 使用关键字,如下所示: 编辑02/05/2019 Java 12 从Java 12开始,提出了新的switch case语法,因此要解决此问题,方法如下: 现在,您可以选择多个选项,并用逗号分隔,一个箭

  • 本文向大家介绍写一个把字符串大小写切换的方法相关面试题,主要包含被问及写一个把字符串大小写切换的方法时的应答技巧和注意事项,需要的朋友参考一下 var reversal = function(str){ var newStr = ''; if(Object.prototype.toString.call(str).slice(8,-1) !== 'String'){ alert("请填写字符串")

  • 我在Windows7上安装了Apache2.2HTTP服务器。端口80已经被使用,我正在尝试将apache绑定到另一个可用端口。我已经修改了C:\Apache\ApacheHTTPserver\Apache24\conf\httpd。txt文件将Listen 80的值更改为Listen 88或Listen 7777(我已检查端口88和7777是否可用),并将ServerName localhost

  • 操作步骤: 菜单栏: Edit —> Toggle Case 快捷键: Mac: Shift + Command + U Windows/Linux: Ctrl + Shift + U

  • 根据Azure Functions留档的Azure Blob存储绑定,在配置Blob触发器时,可以利用Blob名称上的模式匹配将部分路径映射到函数中的变量,例如。 我已经测试过了,它在我的用例中运行得很好,但是由于< code>BlobTrigger触发的大延迟(通常超过5分钟),它不是一个可行的选项。因此,根据Azure Functions scale和托管文档的建议,我希望将它变成一个事件网格