gpt4 book ai didi

swift - Swift 中泛型数组的问题

转载 作者:行者123 更新时间:2023-11-30 14:16:27 25 4
gpt4 key购买 nike

由于我对 iOS 中的 native 编程还很陌生,因此我需要一些帮助来解决以下情况。我需要的是一个类,它保存一个数组或字典,其中两个整数的组合作为键(用于网格矩阵中的坐标)和一个整数作为值。我在某个教程中找到了解决方案,如下所示:

class Array2D<T> {
let columns: Int
let rows: Int

var array: Array<T?>

init(columns: Int, rows: Int) {
self.columns = columns
self.rows = rows

array = Array<T?>(count: rows * columns, repeatedValue: nil)
}

subscript(column: Int, row: Int) ->T! {
get {
return array[(row * columns) + column]
}
set(newValue) {
array[(row * columns) + column] = newValue
}
}
}

不幸的是,一旦类初始化,这种类型的数组就已经具有行*列的长度,这是我不想要的。数组一开始应该是空的。但是,如果我初始化一个空数组,则在获取或设置尚不存在的键的值时会遇到问题。另外,我需要能够轻松地增加特定键的值(例如 array[2, 3]++ )。有人有好的办法解决我的问题吗?

最佳答案

只需将其与选项一起使用,这样就不会设置初始值。在此示例中,您有,它们是可选的并使用nil初始化。该数组被初始化为空数组。

class Array2D<T> {
let columns: Int? = nil
let rows: Int? = nil

var array: Array<T?> = []
}

关于swift - Swift 中泛型数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31117070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com