我想在类中发送一个方法地址,允许该类调用该方法。我希望这个类是Hashable,我希望从方法计算hashValue,使得指向同一方法的2个对象具有相同的hashValue。
这是尝试计算hashValue的类init,但它失败了。我认为它散列了一个指向局部变量的指针。
typealias functionAlias = ((Double) -> ())?
class FunctionPointer: Hashable {
private let functionPointer: functionAlias
private let hash: Int
init( functionPointer: functionAlias ) {
self.functionPointer = functionPointer
var f = functionPointer
var h = 0
withUnsafePointer(to: &f, {
ptr in
h = ptr.hashValue
})
self.hash = h
print("self.hash = \(self.hash)")
}
}
由于