我正在编写一些 Swift 代码,其中包含一个泛型类型的数组:
let _data: Array<T> = T[]()
在我的代码中,稍后需要确定数组中存储的类型。我尝试使用文档中描述的类型转换技术(尽管它不适用于泛型)。
switch self._data {
case let doubleData as Array<Double>:
// Do something with doubleData
case let floatData as Array<Float>:
// Do something with floatData
default:
return nil // If the data type is unknown return nil
}
上述的switch语句在编译时会导致以下错误:
有人知道如何将我的通用数据转换为其实际类型以便采取特定操作吗?
- 在代码路径/code.viperscience/Adder/src/Adder Library/Matrix.swift:45:3处,生成IR SIL函数@_TFC19Adder_Example___Mac6Matrix9transposeUS_7Element__fGS0_Q__FT_GSqGS0_Q___时出错:0:错误:无法执行命令:分段错误:11 0:错误:由于信号而导致swift前端命令失败(使用-v查看调用)命令/Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift以退出码254失败
as?
,但我认为在你的情况下这是编译器的错误...请报告它! - Jack