2014-07-14 17 views

Trả lời

12

Bạn không thể làm điều này vì kích thước của bộ tuple là một phần của loại, và điều này không đúng đối với một mảng. Nếu bạn biết chiều dài của mảng, bạn chỉ có thể thực hiện let myTuple = (myArray[0], myArray[1], ...). Hoặc bạn có thể xây dựng kiến ​​trúc của bạn xung quanh tuples ngay từ đầu. Bạn đang cố làm gì vậy?

Đây là vấn đề phổ biến xảy ra ở nhiều ngôn ngữ khác. Xem How do I convert a list to a tuple in Haskell?

+0

Không cố gắng xây dựng bất cứ điều gì, chỉ cần Hiếu kỳ. Cảm ơn đã giúp đỡ. – niranjanbajgai

15

Nó thực sự là khá tốt, nếu bạn sẵn sàng làm một số phép thuật cấp thấp. Tôi không nghĩ rằng nó hoạt động nếu tuple có một loại bộ sưu tập , mặc dù. Điều này chủ yếu để tương tác với các thư viện 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)) 

hơn của công cụ này có thể được tìm thấy ở đây: https://codereview.stackexchange.com/questions/84476/array-to-tuple-in-swift/84528#84528


Bởi vì 70% trong chúng ta là những sinh vật rất trực quan:

enter image description here

Các vấn đề liên quan