gpt4 book ai didi

pattern-matching - 由于 Swift 模式匹配中的顺序导致的意外结果

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:10 24 4
gpt4 key购买 nike

对于“这不应该行吗?”的问题,我们深表歉意。问题。但我想不出更好的表达方式。

enum MyEnum {
case A, B, C
}

let tuple = (MyEnum.C, MyEnum.A)
var x: String

switch tuple {
case (.A, _):
x = "(A, something)"
case (_, .A):
x = "(something, A)"
case (_, .B):
x = "(something, B)"
case (.C, .C):
x = "(C, C)"
default:
x = "default"
}

x // -> "default"

x 的计算结果为 "default",这意味着采用了默认分支。

但是,我期望 "(something, A)" 和第二个 case 语句匹配。据我了解,(_, .A) 应该匹配第一个元组元素中的任何内容,而 .A 在第二个元素中匹配。

如果我将 (_, .A) 案例移动到顶部,它会按照我的预期进行匹配。其他元组也匹配我期望的位置。

我错过了什么?为什么这与第二种情况不匹配?

最佳答案

此行为已在 beta 3 中得到纠正。它现在显示 (Something, A) 无论顺序是什么。

关于pattern-matching - 由于 Swift 模式匹配中的顺序导致的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24170097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com