我正在写一些银行代码,我有一个包含一个泛型类型的数组:苹果斯威夫特:类型转换泛型
let _data: Array<T> = T[]()
在我的代码后来我需要确定存储在数组中的类型。我尝试使用documentation中描述的类型铸造技术(虽然它不用于泛型)。
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语句导致以下错误在编译:
- While emitting IR SIL function @_TFC19Adder_Example___Mac6Matrix9transposeUS_7Element__fGS0_Q__FT_GSqGS0_Q___ for 'transpose' at /code.viperscience/Adder/src/Adder Library/Matrix.swift:45:3 :0: error: unable to execute command: Segmentation fault: 11 :0: error: swift frontend command failed due to signal (use -v to see invocation) Command /Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254
任何人都知道我能投我的通用数据存储到其实际类型,以便采取具体行动?
尝试使用'as?',但我认为在你的情况下它的编译器错误...报告! – Jack
我试过可选,但没有奏效。我同意它可能是一个编译器错误。这不是我见过的与泛型有关的拳头... – nalyd88