【发布时间】:2015-01-08 18:53:48
【问题描述】:
如何确定一个泛型结构的两个实例是否属于同一类型?
例如,给定以下结构:
struct FooBar<T> {
let variable: T
init(arg: T) {
variable = arg
}
}
还有下面的sn-p:
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'之间加一个分号)
点类型的预期标识符
和
预期的表达方式
【问题讨论】:
-
google 搜索后才发现这个问题。未来的我感谢过去的我。
标签: generics swift types struct