Можно ли создать уникальный хеш из замыкания Swift?
Допустим, у нас есть следующая структура, заключающая в себе замыкание:
public struct Task: Hashable {
pubic var closure: RateLimitedClosure
public var hashValue: Int {
// return unique hash
return 1
}
public static func ==(lhs: Task, rhs: Task) -> Bool {
return lhs.hashValue == rhs.hashValue
}
}
То, что я хотел бы для ==
функция для возврата true, если замыкания точно такие же.
Затем я могу использовать эту структуру в качестве ключа к словарю, объявленному как таковой: var dict = [Task, (Date, RateLimitedClosure)]
1 ответ
Нет языковой конструкции, которая могла бы сделать это.
Интересно, если этот вопрос даже четко определен. В конце концов, замыкание - это на самом деле просто указатель на функцию и переменные, которые оно захватывает, верно? Достаточно просто хешировать указатель на функцию, но не так просто вывести хеш-значения для всех произвольных переменных, которые закрывает замыкание.