arrays - 特定大小的 C 数组的 Swift 仿真

标签 arrays swift typedef type-alias

我希望能够创建变量,这些变量是预先分配的特定大小的数组。在 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/

相关文章:

arrays - 如何将数组保存到 Realm 对象

php - 获取两个数组之间添加/删除/更改的键=>值对

regex - Swift 中特定字符后用空格分隔值

ios - Swift:如何使 ScrollView 执行 subview Controller viewDidLoad

c - 为什么我尝试用 typedef 定义自然类型不起作用?

c++ - typedef 共享指针的最佳策略是什么?

c - 如何使指针在新结构中兼容?

.net - .Net 数组的 LongLength 的目的是什么?

swift - WatchOS2 - 如何在选择时使所有行组或每个行组具有不同的颜色?

javascript - 如何使用 javascript 在 HTML 中的数组中显示访问的(通过 for 循环)对象