gpt4 book ai didi

ios - 如何在 Swift 字典中对同一个值使用多个键?

转载 作者:行者123 更新时间:2023-11-28 07:51:13 25 4
gpt4 key购买 nike

如何将用户记录存储到 Swift Dictionary 中,但通过两种类型的键对其进行索引:userIDfirstName?可能吗?

如果删除了一个值,表达式 users[aUserID]user[aFirstName] 都应该返回 nil

最佳答案

字典不关心唯一值,它们只关心唯一键。因此,您可以在字典中拥有任意多个相同的值,只要它们的键完全不同即可。

我解决你的问题的方法是隐藏所有必要的逻辑,使字典键在包装类中保持同步:

struct User {
let userId: Int
let firstName: String
// more user properties
}

class UserDict {

private var dict = [String: User]()

subscript(key: String) -> User? {
return dict[key]
}

subscript(key: Int) -> User? {
return dict["\(key)"]
}

func add(_ user: User) {
dict[user.firstName] = user
dict["\(user.userId)"] = user
}

func remove(forKey key: String) {
if let user = dict[key] {
dict.removeValue(forKey: user.firstName)
dict.removeValue(forKey: "\(user.userId)")
}
}

func remove(forKey key: Int) {
remove(forKey: "\(key)")
}

var count: Int {
return dict.count / 2
}
}

关于ios - 如何在 Swift 字典中对同一个值使用多个键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49609960/

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