使用变量访问 swift 结构属性

Access swift structure attribute using a variable

我是 swift 的新手,我想了解如何通过变量访问结构属性。作为 JS 开发人员,我们可以通过变量访问对象键,所以我想知道 swift 是否也可以这样做?

//example in javascript
const someArray = [
   {key1: "value 1"},
]

const getValue1 = (key) => {
   return someArray[0][key]
}

//will return "value 1" 
getValue1(key1) 

同样,对于 swift,我正在尝试访问结构项字典中的属性。故事已作为结构体启动。

let stories = [
  Story(
            title: "Some Title",
            choice1: "Choice 1",
            choice2: "Choice 2",
        )
]

 func getChoiceText(choice: String) -> String {
   // get the choice string based on choice parameter -> "choice1" || "choice2"
   // eg something like this -> return stories[0][choice] 
 }

// so that I can get the corresponding choice text by calling the function 
getChoiceText(choice: "choice1")

提前感谢您的帮助!! :)

Swift 中最接近的等效项是传递关键路径的通用函数

func getValue<T>(path: KeyPath<Story,T>) -> T {
    return stories[0][keyPath: path]
}

并调用它

getValue(path: \.choice1)

但请注意,如果 stories 为空,代码会崩溃。