使用单个保护套匹配多个枚举?

Tru*_*an1 4 enums swift

我想匹配多个枚举,并有这样的事情:

guard case .north = $0, case .south = $0 else { return }
Run Code Online (Sandbox Code Playgroud)

有没有办法将此浓缩缩小为这样的单个语句?

guard case (. north, . south) = $0 else { return }
Run Code Online (Sandbox Code Playgroud)

上面没有编译,但希望我可以做这样的事情.还有其他选择吗?

vac*_*ama 9

您可以将所需的案例放入文字数组并用于contains测试匹配:

guard [.north, .south].contains($0) else { return }
Run Code Online (Sandbox Code Playgroud)