在Swift中初始化二维数组

时间:2014-10-08 10:59:27

标签: arrays swift swift-playground

我已将二维数组定义为:

var monthNames:[[String]]

我想将其初始化为:

列数:3,每列的行:undefined

所以我可以稍后初始化行。

2 个答案:

答案 0 :(得分:1)

根据您的问题,您正在创建具有三列的数组,每列将具有更多行(记录),您可以执行以下操作:

var twoDimesions: [[String]] = [[], [], []]

var array1: [String]=[]
array1.append("1 name1")
array1.append("1 name2")
twoDimesions[0] = array1

var array2: [String]=[]
array2.append("2 name1")
array2.append("2 name2")
twoDimesions[1] = array2

println("twoDimentions: \(twoDimesions)")
println("array1: \(array1)")
println("array2: \(array2)")

您将按如下方式获取日志:

twoDimentions: [[1 name1, 1 name2], [2 name1, 2 name2], []]
array1: [1 name1, 1 name2]
array2: [2 name1, 2 name2]

这可能对你有帮助!!!

答案 1 :(得分:0)

我认为undefined你的意思是空的 - 所以它是一个包含3个元素的数组,其中每个元素都是一个(空)数组。您可以按如下方式初始化:

var monthNames:[[String]] = [ [], [], [] ]

或:

var monthNames = [[String]](count: 3, repeatedValue: [])

附注:如果您想稍后初始化数组,请记住您不能这样做:

var array = monthNames[0]
array.append("another test")

因为数组是值类型,所以当分配给变量时,会完成原始数组的副本。您所做的任何更改都是该变量的本地更改,因此不会反映在原始数组中。