[英]is hashValue of Task unique on Swift concurrency?
我想要一个 SomeProtocol 数组,它有一个 get 属性表示在任务扩展中。
如果 Task 的 hashValue 是唯一的,我想将其视为删除 SomeProtocol 数组中对象的主键。 而且我想知道它是否也在内存级别上得到保证。
这是下面的代码。
protocol SomeProtocol {
var taskId: Int { get }
}
extension Task: SomeProtocol {
var taskId: Int {
get { return hashValue }
}
}
根据定义,哈希值不是唯一的。 如果你想为你的任务分配一个唯一的 ID,你可能需要自己处理:
struct IdentifiableTask<E,F>: Identifiable where F:Error {
let id = UUID()
let task: Task<E,F>
init(_ task: Task<E,F>) {
self.task = task
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.