ios - 如何在 Swift 中将数组值作为单独的参数传递?
问题描述
我有以下使用Bond的代码。
combineLatest(settings.userAutoRefreshInterval, config.value?.userRefreshInterval).observeNext { [weak self] _ in
self?.updateAutoUserRefresh()
}.dispose(in: self.bag)
当然,这有一个构建错误,因为 Bond'scombineLatest
不接受选项。
我考虑if let
过两次编写基本相同的代码,但感觉真的很乱。
在 JavaScript 中,您可以将数组与每个元素作为单独的参数传递给函数。如下所示:
function test(a, b, c) {
console.log("a", a);
console.log("b", b);
console.log("c", c);
}
const array = ["Hello", "world", "!!!"];
test(...array);
有没有办法在 Swift 中做到这一点?
如果没有,关于如何让我的代码工作并让它尽可能干净的任何想法?
解决方案
如果您的所有参数都是相同的类型,那么您可以使用varargs
参数:
func test(_ args: String...) {
args.forEach { print $0 }
}
然后你称之为
test("Life", "Liberty", "Pursuit of Happiness")
推荐阅读
- angular - 为什么这个 Angular HttpClient Post 没有同步?
- java - iText 5 - 如何在 Java 中使用 iText 5 设置不同大小的表格单元格
- camera - 如何选择用于阅读非常小的字体字符的镜头
- html - 单击html按钮后执行节点js子进程
- azure-cosmosdb - 在源代码控制和 CI/CD 中维护存储过程、用户定义的函数、索引等的推荐方法
- git - 提交历史中缺少 Git 提交
- php - WordPress mod_rewrite 查询字符串返回 404
- hash - 如何通过在markdown中使用#来忽略显示的标题?
- python - 更新嵌套字典中子键的值会覆盖旧值
- excel - 如何仅计算自定义函数中的可见单元格(根据单元格颜色计算单元格)