gpt4 book ai didi

swift - 更改枚举 Swift 的关联值

转载 作者:可可西里 更新时间:2023-11-01 00:54:34 24 4
gpt4 key购买 nike

如何更改枚举的特定关联值

enum Origin {
case search(searchTerm: String, filtered: Bool)
case category(categoryName:String, subcategoryName:String)

}

@objc class GameSession: NSObject
{
var gameOrigin: Origin?

...

@objc func setIsSearchFiltered(filtered:Bool)
{
if (<gameOrigin is of type .search?>)
{
self.gameOrigin = <change "filtered" associated value to new value>
}
}

....
}

This question with answer ,不幸的是,最近没有帮助我。

最佳答案

您只能为变量分配一个新的枚举值。如 Can I change the Associated values of a enum? ,可以在 switch 语句中检索当前值的关联值,具有将关联值绑定(bind)到局部变量的案例模式。

不需要当前关联的 filtered 值,因此我们可以在该位置使用通配符模式 _

由于 var gameOrigin: Origin? 是可选的,我们需要一个带有尾随问号的“可选模式”。

switch gameOrigin {
case .search(let searchTerm, _)?:
gameOrigin = .search(searchTerm: searchTerm, filtered: filtered)
default:
break
}

在带有 case 和 pattern 的 if 语句中也可以做同样的事情匹配:

if case .search(let searchTerm, _)? = gameOrigin {
gameOrigin = .search(searchTerm: searchTerm, filtered: filtered)
}

关于swift - 更改枚举 Swift 的关联值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52535970/

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