[英]Multidimensional arrays in Swift - Style
在Swift中有多个用于声明多维数组的习惯用法。 考虑以下:
var ia1 = Array<Array<Int>>()
var ia2: Int[][] = []
typealias IntArray = Array<Int>
var ia3 = IntArray[]()
var ia4 = Int[][]()
ia1 += [[1, 2, 3], [2, 3, 4]]
ia2 += [[1, 2, 3], [2, 3, 4]]
ia3 += [[1, 2, 3], [2, 3, 4]]
ia4 += [[1, 2, 3], [2, 3, 4]]
let test = (ia1 == ia2) // true
let test2 = (ia3 == ia4) //true
// etc...
实际上,声明之间可能会咬住开发人员吗? 如果不是,是否有充分的理由互相使用?
T[]
只是Array<T>
语法糖—实现没有区别。 您喜欢哪种风格是一个见解的问题。
请注意,根据您要建模的内容,多维数组可能不是您想要的。 在内部使用单个数组,并向数据结构的用户公开多维下标可能更有意义:
class GameBoard {
let width = 10
let height = 10
let board: [Int]
init() {
board = [Int](count: width * height, repeatedValue: 0)
}
subscript(i: Int, j: Int) -> Int {
return board[i + j * width]
}
}
let b = GameBoard()
b[0,0]
b[4,1]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.