swift - Swift:有没有更好的方法将数据添加到作为函数参数的字典中?
问题描述
我将字典传递给函数,然后将一些数据添加到该字典并再次将其传递给另一个函数:
f(["initial": "initial"])
func f(_ dictionary: [String: Any]) {
var mutatingDictionary = dictionary
mutatingDictionary["test"] = "test"
anotherFunction(mutatingDictionary)
}
我想知道是否有更好或更优雅的方法来做到这一点,而不必写 3 行,也许是处理变量的更好方法(比如不必重新创建 a mutatingDictionary
)?
感谢您的帮助。
解决方案
merging(_:uniquingKeysWith:)会给你一个没有可变性的新副本。唯一的参数使它变得冗长。我想如果它困扰你,你可以制作你自己的字典扩展名merging
,它总是提供一个左转函数来实现唯一性:
f(["initial": "initial"])
func f(_ dictionary: [String: Any]) {
anotherFunction(dictionary.merging(["test":"test"], uniquingKeysWith: { left, _ in left}))
}
推荐阅读
- arrays - didSelectRowAt 更改所有行中的值
- ios - Cordova IOS webview 界面随机无响应
- javascript - 如何将一组独特的对象组合成一个对象?
- reactjs - 无法在 React-Redux 组件的 Jest/Enzyme 测试中获取节点
- jsp - 来自 jsp 的 Windows 10 Tomcat 日志记录
- javascript - Javascript 浏览器缩放对象
- javascript - Spring boot,WebSocket不向指定用户发送通知
- sql - 两个varchars之间的比较
- c# - RevenueCat Unity,错误:EntryPointNotFoundException:_RCSetupPurchases
- javascript - 在 React.js 中使用 Async/Await 并返回状态