gpt4 book ai didi

swift - 遍历可选字典的名称/值对

转载 作者:行者123 更新时间:2023-11-28 11:00:04 25 4
gpt4 key购买 nike

我仍在思考如何在 Swift 中使用可选项,并且很好奇如何最好地处理循环可选字典参数的名称/值对。考虑:

func printNamesAndValues(of foo: [String: String]?=nil) -> Void {
for (name, value) in foo {
print("\(name) is \(value)")
}
}

printNamesAndValues()
printNamesAndValues(of: nil)
printNamesAndValues(of: ["a": "b"])

for 循环行上的 Swift 3 编译器错误,报告:

Value of optional type [String: String]?" not unwrapped; Did you mean to use '!' or '?'?

在这种情况下,强制解包似乎是错误的方法,因为 foo 可以通过默认参数或调用者传递 nil 的方式为 nil。那么,我应该在 for 循环之前使用 guard 吗?或者用 if foo != nil { ... } 包装 for 循环?还是我忽略了另一种首选方法?

最佳答案

这完全取决于您。有几种方法可以做到这一点

guard let dict = foo else { return }
// use dict

if let dict = foo {
// use dict
}

if foo != nil {
// use foo! - not recommended actually
}

如果执行此方法需要字典,我更喜欢 guard(但这可以通过使 foo 参数不是可选的来避免)。

如果是这种确切的方法,我更愿意将声明修改为

func printNamesAndValues(of foo: [String: String] = [:]) -> Void {}

关于swift - 遍历可选字典的名称/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168783/

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