gpt4 book ai didi

Swift 3 关联值枚举比较语法与 OR (`||` )

转载 作者:搜寻专家 更新时间:2023-11-01 05:52:33 25 4
gpt4 key购买 nike

我有一个具有关联值的枚举,ChatItemType:

enum ChatItemType {
case message(ChatBubbleType)
case log
case timestamp
}

我在 if 语句中进行这样的比较:

if case .log = givenType {
return true
} else if case .timestamp = givenType {
return true
} else {
return false
}

将第一条和第二条语句结合起来显然是有意义的,因为它们都返回 true。但是按照我期望的方式使用 || 似乎给我一个语法错误:

if case .log = givenType ||案例.timestamp = givenType

我知道我可以只检查 .message 类型,否则返回 true,但可能有更多的 ChatItemType将来会添加,所以我仍然想知道如何正确组合比较。

我发现很难在网上找到这个问题的答案,主要是因为我不确定引用这些概念的正确术语。那里的任何指导也很感激。

最佳答案

您不能在 if 语句中与多个模式进行比较(据我所知),但您可以在 switch 语句中这样做:

switch givenType {
case .log, .timestamp:
return true
case .message:
return false
}

(显式枚举所有情况而不是使用默认情况确保您不会忘记更新功能,如果另一个大小写稍后添加到类型中。)

关于Swift 3 关联值枚举比较语法与 OR (`||` ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43758777/

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