gpt4 book ai didi

swift - 通过索引访问结构成员

转载 作者:可可西里 更新时间:2023-11-01 01:22:59 25 4
gpt4 key购买 nike

如果我有这样的结构

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 不允许这样做......

最佳答案

在 Swift 的上下文中思考您的要求,这是一种强(主要)静态类型的语言。

n 结构的第 n 成员的类型在编译时是未知的?

(请注意,在引用元组元素时,例如 (1, true, 3.4).1 -> true,选择器是文字 值而不是变量,所以类型总是已知的。)

Swift 设计者本可以选择为所有元素都是同一类型的结构包含一个特例,但这可能会让人感到困惑。

您应该考虑您的设计以及为什么需要此操作和对组件的命名访问。如果它很重要,请考虑具有适当操作的自定义类型,可能基于用于存储的数组。

关于swift - 通过索引访问结构成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com