我希望能够创建变量,这些变量是预先分配的特定大小的数组和。在 C 中,这可以像这样完成:
typedef float vec16f[16];
vec4f myPresizedPreInitializedArray;
myPresizedPreInitializedArray[2]=200.0f
在 Swift 中如何做到这一点?
我尝试了以下方法:
-
typealias PositionVector = [Double]
没有大小限制也没有预初始化 -
class Vector4D: Array<Any> {}
导致错误Inheritance from non-protocol, non-class type 'Array<Any>'
最佳答案
一个可能的解决方案是以静态成员作为模板的结构
struct Template {
static let vec4 = [Float](repeatElement(10.0, count: 4))
}
var newVec = Template.vec4
newVec[2] = 200.0
由于值类型语义,你总是得到 vec4
的副本。
关于arrays - 特定大小的 C 数组的 Swift 仿真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473805/