【发布时间】:2014-10-08 10:59:27
【问题描述】:
我已经定义了一个二维数组:
var monthNames:[[String]]
我想将其初始化如下:
列数:3,每列行数:未定义
所以我可以稍后再初始化行。
【问题讨论】:
标签: arrays swift swift-playground
我已经定义了一个二维数组:
var monthNames:[[String]]
我想将其初始化如下:
列数:3,每列行数:未定义
所以我可以稍后再初始化行。
【问题讨论】:
标签: arrays swift swift-playground
根据您的问题,您正在创建包含三列的数组,每列将有更多的行数(记录),因此您可以执行以下操作:
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]
这可能对你有帮助!!!
【讨论】:
我认为未定义的意思是空的 - 所以它是一个由 3 个元素组成的数组,其中每个元素都是一个(空)数组。可以如下初始化:
var monthNames:[[String]] = [ [], [], [] ]
或:
var monthNames = [[String]](count: 3, repeatedValue: [])
旁注:如果您想稍后初始化数组,请记住您不能这样做:
var array = monthNames[0]
array.append("another test")
因为数组是值类型,所以当分配给一个变量时,原始数组的副本就完成了。您所做的任何更改都是该变量的本地更改,因此不会反映在您的原始数组中。
【讨论】: