如何将数组转换为元组?

nir*_*gai 15 arrays tuples type-conversion swift

我只想将数组转换为Swift中的元组; 类似以下内容:

>>> myArray = [1,2,3,4,5]
>>> mytuple = tuple(myArray)
>>> mytuple
(1, 2, 3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

(我今天才开始学习Swift,所以我非常非常新).

Maz*_*yod 23

如果你愿意做一些低级魔法,那实际上是非常有可能的.但是,如果元组具有集合类型,我认为它不起作用.这主要是为了与C库进行交互.

typealias TupleType = (UInt8, UInt8, UInt8)

var array = [2, 3, 4] as [UInt8]
var tuple = UnsafeMutablePointer<StepsType>(malloc(UInt(sizeof(TupleType))))
memcpy(tuple, array, UInt(array.count))
Run Code Online (Sandbox Code Playgroud)

更多这方面的内容可以在这里找到:https: //codereview.stackexchange.com/questions/84476/array-to-tuple-in-swift/84528#84528


因为我们70%的人都是高度视觉的人:

在此输入图像描述


jtb*_*des 14

你不能这样做是因为元组的大小是它的类型的一部分,而对于数组则不是这样.如果你知道数组的长度,你就可以做到let myTuple = (myArray[0], myArray[1], ...).或者,您可以从一开始就围绕元组构建您的架构.你想做什么?

这是许多其他语言中常见的问题.请参阅如何在Haskell中将列表转换为元组?