首页 > 解决方案 > 如何在 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 中做到这一点?

如果没有,关于如何让我的代码工作并让它尽可能干净的任何想法?

标签: iosswiftswiftbond

解决方案


如果您的所有参数都是相同的类型,那么您可以使用varargs参数:

func test(_ args: String...) {
    args.forEach { print $0 }
}

然后你称之为

test("Life", "Liberty", "Pursuit of Happiness")

推荐阅读