【问题标题】:Initilizing a two dimensional array in Swift在 Swift 中初始化一个二维数组
【发布时间】:2014-10-08 10:59:27
【问题描述】:

我已经定义了一个二维数组:

var monthNames:[[String]]

我想将其初始化如下:

列数:3,每列行数:未定义

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

【问题讨论】:

    标签: arrays swift swift-playground


    【解决方案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]
    

    这可能对你有帮助!!!

    【讨论】:

      【解决方案2】:

      我认为未定义的意思是空的 - 所以它是一个由 3 个元素组成的数组,其中每个元素都是一个(空)数组。可以如下初始化:

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

      或:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-04-04
        • 2011-01-24
        • 2012-04-06
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2012-11-29
        相关资源
        最近更新 更多