使用变量访问 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
为空,代码会崩溃。
我是 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
为空,代码会崩溃。