【发布时间】:2021-05-19 19:11:23
【问题描述】:
我试图在 Swift 中让每个可能的 UInt8 数组的数组大小达到 100。到目前为止,我有以下代码:
var arrays = [[UInt8]]()
for size in 1...100 {
let arr = Array(repeating: 255, count: size) as [UInt8]
arrays.append(arr)
}
到目前为止的代码只是创建了一个数组,其中填充了255 for 循环指定的次数。相反,我希望代码为每个数组大小创建一个数组,列出所有可能的组合。例如,当 size 为 1 时,数组应如下所示:
[0], [1], [2], [3], [4], so on until [255]
当size 为 2 时,数组应如下所示:
[0,0], [0,1], [0,2], [0,3], [0,4], so on until [0,255]
[1,0], [1,1], [1,2], [1,3], [1,4], so on until [1,255]
这应该一直持续到 size 为 100。有什么方法可以使用 Swift 完成此操作?
提前致谢。
【问题讨论】:
-
as [UInt8]?是什么意思?没有可选的 -
@vadian 那是个意外,现在已经更正了。它不应该是可选的,而是应该转换为 UInt8 数组而不是默认的 Int 数组。
-
如果要生成
[0], [1], [2], [3], [4]...,需要编写一些代码来生成[0], [1], [2], [3], [4]...。不要编写一些完全不同的代码,然后抱怨它没有做你想要的。您当前的代码几乎与您声明的目标完全无关。 -
我建议分小块解决问题。弄清楚如何生成
[0,1,2,3]。那么如何生成[[0], [1], [2], [3]]。那么如何生成[[0,0], [0,1], [0,2], [0,3]]。以此类推。 -
除非这是一些家庭作业,否则我建议使用Swift Algorithms
标签: arrays swift uint8array