【问题标题】:Taking on value of a tuple in an array?获取数组中元组的值?
【发布时间】:2017-04-02 04:17:57
【问题描述】:

所以我正在为基于文本的游戏创建一个不可见的网格。我在 10 x 10 网格中创建了一个坐标数组。如何访问数组中的单个 x 和 y 值?

---------Swift 3 代码!!

var gameArea: [(Int, Int)] = []

for x in 1...10 {
    for y in 1...10 {
        gameArea.append(x, y)
    }
}

var position = gameArea[5]

position.y

【问题讨论】:

  • 您忘记命名元组的元素。 var gameArea: [(x: Int, y: Int)] = [ ]

标签: arrays swift tuples


【解决方案1】:

如果您想像.x.y 一样访问它,您必须稍微更改您的代码,也可以通过.0.1 访问它

var gameArea: [(x: Int, y: Int)] = []

for x in 1...10 {
    for y in 1...10 {
        gameArea.append((x,y))
    }
}

var position = gameArea[5]

position.0 // x value
position.1 // y value

position.x // x value
position.y // y value

【讨论】:

    【解决方案2】:

    您的追加调用需要一个作为元组的参数,而不是作为元组元素的两个参数,如下所示:

    gameArea.append((x, y))
    

    gameArea 的生成可以在一行代码中完成:

    let gameArea = (1...10).map{ x in (1...10).map{ y in (x: x, y: y) }}
    

    元组成员可以通过索引.0, .1, ...或名称访问(如果他们有名称:

    gameArea[0].x //equivalent to gameArea[0].0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-18
      • 2017-05-31
      • 2014-12-19
      • 2015-07-13
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多