[英]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.