gpt4 book ai didi

Swift:如何测试一个变量是一个序列类型?

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:11 25 4
gpt4 key购买 nike

我的目的是检查一个变量是否属于 SequenceType

代码如下:

let a = []
a is SequenceType

XCode 6 beta 5 playground 标记了这些错误:

enter image description here

我还尝试了另一种语法:

a.isMemberOfClass(SequenceType)

这次 XCode 6 beta 5 playground 显示了这些错误:

enter image description here

这里有两个问题:

1) 这些错误消息在每种情况下意味着什么?

2) 什么是正确的测试a是某个类型的子类?

最佳答案

您不能动态检查 SequenceType 一致性。

编译器试图说 SequenceType 有一个 typealias Generator: GeneratorType 和一个有类型要求的协议(protocol) (typealias) 只能用作对泛型类型的约束,例如:

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...

关于Swift:如何测试一个变量是一个序列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25215669/

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