如何确定两个泛型结构体实例是否属于同一类型?
例如,给定以下结构体:
struct FooBar<T> {
let variable: T
init(arg: T) {
variable = arg
}
}
以下是代码片段:
并且以下是代码片段:
let foo = FooBar(1)
let bar = FooBar(1.0)
let baz = FooBar("1")
我该如何确定
foo
, bar
或者 baz
是否属于同一类型或不同类型?func areExactType(x: FooBar) -> Bool {
return self.dynamicType === x.dynamicType
}
这个错误提示是因为类型 'Foo' 不符合协议 'AnyObject' 的要求。
func areExactType(x: FooBar) -> Bool {
return self.dynamicType === x.dynamicType
}
这会导致
无法使用参数列表类型为'(Foo.Type, Foo.Type)'的'=='
func areExactType(x: FooBar) -> Bool {
return self is x.dynamicType
}
这里有三个错误:
同一行上连续的语句必须用 ';' 分隔开
(这里需要在句号和 'dynamicType' 之间加上分号)
点类型中缺少标识符
还有
表达式不完整