繁体   English   中英

Swift中的数组数组

[英]Array of arrays in Swift

我想制作包含数组的数组,有些是double的,有些是int的。

这不起作用:

var arrayZero = [1,2,3]
var arrayOne = [4.0,5.0,6.0]

var arrayofArrayZeroandOne: [[AnyObject]] = arrayZero.append(arrayOne)

我如何将数组追加到数组,以便在编写arrayofArrayZeroandOne [1] [1]时获得5.0?

我会利用Swift的类型安全性。 如果不小心在数组中添加和检索数组,使用Any路线可能会引入错误。

var numbers = Array<Array<NSNumber>>()  // A bit clearer IMO
var numbers = [[NSNumber]]()            // Another way to declare
numbers.append(arrayZero)
numbers.append(arrayOne)

然后当你做类似的事情

let five = numbers[1][1] // will be 5.0

您知道它将是NSNumber类型。 此外,除非它是NSNumber,否则Swift将不允许您将其他任何内容放入数组

没有附加解决方案

var numbers = Array<Array<NSNumber>>() [
    [1,2,3,4],
    [1.0,2.0,3.0,4.0]
]

您正在寻找[[Any]] (请注意,在适当位置append突变):

let arrayZero = [1, 2, 3]
let arrayOne = [4.0, 5.0, 6.0]

let arrayofArrayZeroAndOne: [[Any]] = [arrayZero, arrayOne]

let a = arrayofArrayZeroAndOne[0][0] // of type Any

您不需要附加,可以直接构造数组:

var arrayZero = [1, 2, 3]
var arrayOne = [4.0, 5.0, 6.0]
var arrayofArrayZeroandOne: [[AnyObject]] = [arrayZero, arrayOne]

println(arrayofArrayZeroandOne[1][1]) // Prints 5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM