【发布时间】:2017-03-26 23:59:12
【问题描述】:
如果我有一个像
这样的结构struct Point4D
{
let x:Double,
y:Double,
z:Double,
w:Double
}
有没有一种通过整数索引访问struct 成员的有效方法?意义
let index:Int = 2
let point:Point4D = Point4D(x: 1, y: 5, z: 3, w: 8)
let component:Double = point [index] // 3
我想这可以通过在 Point4D 上定义 subscript() 方法并使用 switch 语句来实现,但这似乎不是很有效。在 C 中,我相信您可以增加指向第一个结构成员的指针,因为它们都是 Double 类型,但 Swift 不允许这样做……
【问题讨论】:
-
您最好定义一个四元素数组,并提供四个计算属性来访问其元素。