有没有办法用新值重新填充数组,而不使用 for 循环?

Cheok Yan Cheng

在Java中,我们可以简单地填充数组

String[] strings = new String[10];
java.util.Arrays.fill(strings, "hello");
// Re-fill the array with "bye" value.
java.util.Arrays.fill(strings, "bye");

但是,我们如何在 Swift 中执行类似的操作?我能得到的最接近的是

var strings = [String](repeating: "hello", count: 10)
// Re-fill the array with "bye" value.
for index in strings.indices {
    strings[index] = "bye"
}

我希望避免以下内容,因为它会创建另一个新的数组实例。

var strings = [String](repeating: "hello", count: 10)
strings = [String](repeating: "bye", count: 10)

有没有办法用新值重新填充数组,而不使用 for 循环?

瓦迪安

Swift 默认不提供这样的功能,但 Swift 是一种很好的可扩展语言。

最接近的函数是replaceSubrange(_:with:)这样你就可以写一个扩展Array

extension Array {
    mutating func fill(withValue value: Element) {
        replaceSubrange(startIndex..., with: [Element](repeating: value, count: count))
    }
}

并使用它

var strings = [String](repeating: "hello", count: 10)
strings.fill(withValue: "bye")

避免循环的努力只是语法糖。几乎所有这些函数都在后台使用循环。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法可以在不使用 Python 循环的情况下根据前一行获取新列值?

有没有办法在不使用pairs()的情况下循环遍历一个数组?

有没有办法在不使用循环的情况下使用系列索引列表?

有没有办法用循环擦除两个给定的值?

有没有办法使用单个循环比较数组中的每个元素?

有没有办法处理这种循环(for循环)

有没有办法使“ for循环的for循环”?

有没有办法在游标 for 循环中使用函数将值插入表?

有没有办法在不使用 for 循环的情况下从两个数组形成一个列表?

有没有办法制定出了使用Python中以前行,而不使用for循环的列的公式?

有没有办法在不使用try()或tryCatch()的情况下在错误后继续R中的for循环

有没有办法在没有循环的情况下使用 bash 在数组中搜索相同性?

在 for 循环中使用参数调用 javascript 函数:有没有办法暂停循环?

有没有办法在 Ansible 中每次发生循环时将值存储在数组中?

有没有办法循环索引

有没有办法将CompletableFuture放入循环?

有没有办法阻止 tkinter 循环出错?

有没有办法写PRINT语句的FOR循环?

有没有办法更快地进行循环

有没有办法修改此循环?

有没有办法确保循环迭代不同?

有没有办法执行此循环?

有没有办法向量化此for循环

有没有办法使错误消息循环?

有没有办法重构这个 Javascript for 循环?

有没有办法用相同的迭代重复循环?

有没有办法在使用循环时将函数的输出放入python中的数组中?

有没有办法在数组中间启动foreach循环?

有没有办法循环直到 VBA 中的多维数组已满?