gpt4 book ai didi

Swift 类型转换/模式匹配条件这个或那个

转载 作者:行者123 更新时间:2023-11-28 15:11:43 24 4
gpt4 key购买 nike

我的用例涉及一个 switch 语句并试图构建一个依赖于多个类型转换的案例。这将真正帮助我介绍一些可组合/干净/更少的代码。通用的多重条件将不起作用,因为我在转换中使用 let 并且它不能被改变。此外,fallthrough 会产生类似的错误。

case let foo as SomeStruct,
let foo as SomeOtherStruct:
// do whatever

Error: Pattern variable bound to type

case let foo as SomeStruct:
fallthrough
case let foo as SomeOtherStruct:
// do whatever

'fallthrough' cannot transfer control to a case label that declares variables

这些错误都是有道理的。基本上,我问是否有任何方法可以对 let foo as SomeStruct || 进行类型转换/模式匹配SomeOtherStruct

编辑:为了获得更多上下文,我正在使用 ReSwift 进行 reducer 组合

最佳答案

那这个呢?

struct S1 {
var a : String
}
struct S2 {
var a : Int
}
let x = S1(a: "Test")
switch x {
case let y where (y is S1) || (y is S2): print("S1 or S2")
default: break
}

关于Swift 类型转换/模式匹配条件这个或那个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47536355/

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