gpt4 book ai didi

swift - 如何在 Swift 中声明类型化的字典?

转载 作者:搜寻专家 更新时间:2023-11-01 05:57:36 25 4
gpt4 key购买 nike

我有一个类似Swift.Dictionary 的结构

let tests:[ [String:Any] ] = [
[ "f" : test1, "on" : true ],
[ "f" : test2, "on" : false ],
[ "f" : test3, "on" : false ],
[ "f" : test4, "on" : false ],
[ "f" : test5, "on" : false ]
]

其中 f()->() 类型的 closureon bool 。我正在使用它来根据 on 值枚举和eval 闭包:

for (_, test) in tests.enumerate() {
if test["on"] as! Bool {
let f:()->()=test["f"] as! ()->();
f();
}
}

如何显式声明此 Swift.Dictionary 结构以避免解包并强制转换为 as!:

let f:()->()=test["f"] as! ()->();

最佳答案

这个有用吗?而且看起来也干净多了。

typealias MyClosure = (() -> ())
typealias MyTuple = (f: MyClosure, on: Bool)

let tests: [MyTuple] = [ etc...

for item in tests {
if item.on {
let f = item.f
f()
}
}

关于swift - 如何在 Swift 中声明类型化的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35342416/

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