gpt4 book ai didi

ios - swift - 我可以比较 Any.Type 吗?

转载 作者:可可西里 更新时间:2023-11-01 01:43:44 25 4
gpt4 key购买 nike

我定义了两种类型如下:我想定义一个函数“匹配”来比较两个 KeyTypePairs 并返回 true 或 false 取决于键和类型的匹配。

protocol KeyTypePair: Hashable {
typealias val

var key: String { get }
var type: Any.Type { get }
}

public struct KeyTypePairOf<T>: KeyTypePair {
typealias val = T

let _key: String
let _type: Any.Type

public var key: String {
get {
return _key
}
}

public var type: Any.Type {
get {
return _type
}
}

public var hashValue: Int {
get {
return _key.hashValue
}
}

public init(key: String) {
self._key = key
self._type = T.self
}

init<T: KeyTypePair>(property: T) {
self._key = pair.key
self._type = pair.type
}

func matches<T: KeyTypePair>(pair:T) -> Bool {
let x = self._type == pair.type // invalid, how do I check equal types?
return self._key == pair.key && x
}

}

如何比较结构的“类型”?一直很头疼。我应该改用 AnyObject 吗?

最佳答案

我在 Swift 4 playground 中对此进行了测试

struct Foo {}
struct Bar {}

let fooType: Any.Type = Foo.self
let barType: Any.Type = Bar.self

fooType == Foo.self // true
fooType is Foo.Type // true
fooType == barType // false

关于ios - swift - 我可以比较 Any.Type 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25992233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com