Можно ли создать уникальный хеш из замыкания 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 ответ

Нет языковой конструкции, которая могла бы сделать это.

Интересно, если этот вопрос даже четко определен. В конце концов, замыкание - это на самом деле просто указатель на функцию и переменные, которые оно захватывает, верно? Достаточно просто хешировать указатель на функцию, но не так просто вывести хеш-значения для всех произвольных переменных, которые закрывает замыкание.

Другие вопросы по тегам