[英]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.