[英]Make all elements of array that are Hashable unique with a UUID hashValue?
我有一個符合 Hashable 的類型數組,這些類型可以是符合Hashable
的任何類型。 我遇到的問題是說我有一個字符串數組
let people = ["Joe", "Tom", "Bob", "Joe"]
if people[3] == people[people.firstIndex(of: "Joe")!] {
print(true) // Always true.
}
Hashable
具有hashValue
應該能夠使這些值唯一,但是hashValue
匹配相同的值。 有沒有一種方法可以擴展Hashable
以便符合它的每個元素都將獲得分配的UUID()
,因此與其他任何元素都不相同?
基本上,有沒有辦法獲得id: UUID
符合Hashable
的所有內容
您可能希望以稍微不同的方式執行此操作。 你的數組可以是Identifiable
嗎? 那么你的例子可能是:
struct Person: Identifiable, Hashable {
let id = UUID()
let name: String
}
每個Person
實例都有一個唯一的 hashValue:
let people = [Person(name: "Joe"), Person(name: "Joe"), Person(name: "Joe")]
people.map(\.hashValue) // e.g. -> [7672515142881976808, -2470749298227582550, 3252810522385000211]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.