我的目的是检查变量是否为SequenceType
以下是代码:
let a = []
a is SequenceType
XCode 6 beta 5 playground标记了这些错误:
我还尝试了另一种语法:
a.isMemberOfClass(SequenceType)
这次XCode 6 beta 5游乐场显示了这些错误:
我在这里有两个问题:
1)这些错误信息在每种情况下意味着什么?
2)测试a
是否适合某种类型的子类?
答案 0 :(得分:0)
您无法动态检查SequenceType
一致性。
编译器试图说SequenceType
有一个typealias Generator: GeneratorType
,一个带有类型要求的协议(typealias
)只能用作泛型类型的约束,例如:< / p>
func doSomethingOnSequence <S: SequenceType> (seq: S) {
for i in seq {
println(i)
}
}
doSomethingOnSequence(a)
由于您可以使用泛型,因此可能比使用is
检查类型更好。
如果您仍想尝试检查不太通用的类型,那么您正在做正确的操作(仅使用错误的类型):
let a: Any = []
a is Range<Int>
a is [String]
// and so on...