Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中声明多维布尔数组?_Ios_Macos_Swift_Multidimensional Array - Fatal编程技术网

Ios 如何在Swift中声明多维布尔数组?

Ios 如何在Swift中声明多维布尔数组?,ios,macos,swift,multidimensional-array,Ios,Macos,Swift,Multidimensional Array,我已经看过很多不同的例子来说明如何做到这一点,但没有一个能给出我真正需要的答案。所以我知道如何声明bool类型的多维数组 var foo:[[Bool]] = [] 但是,我不知道如何声明这种类型的10 x 10。我查找的每个示例都只是附加到一个空集,那么我如何将此变量初始化为10x10,其中每个点都被视为布尔值?其他答案都有效,但您可以使用Swift泛型、subscripting和optionals创建一个泛型2D数组类: class Array2D<T> { let c

我已经看过很多不同的例子来说明如何做到这一点,但没有一个能给出我真正需要的答案。所以我知道如何声明bool类型的多维数组

var foo:[[Bool]] = []

但是,我不知道如何声明这种类型的10 x 10。我查找的每个示例都只是附加到一个空集,那么我如何将此变量初始化为10x10,其中每个点都被视为布尔值?

其他答案都有效,但您可以使用Swift泛型、subscripting和optionals创建一个泛型2D数组类:

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
        }
    }
}

作为一个单行程序,您可以使用分配的计算值进行如下初始化:

var foo = (0..<10).map { _ in (0..<10).map { $0 % 2 == 0 } }

var foo=(0..您也可以使用此oneliner:

对于Swift 3.1:

var foo: [[Bool]] = Array(repeating: Array(repeating: false, count: 10), count: 10)

请参见

如果已将repeatedValue显式设置为true或false,则可以在多维数组中存储10x10布尔值。
var bar = (0..<10).map { a in (0..<10).map { b in (a + b) % 3 == 0 } }
var foo = Array(repeating: Array(repeating: false, count: 10), count: 10)
var foo: [[Bool]] = Array(repeating: Array(repeating: false, count: 10), count: 10)