在 Swift 中创建具有两种变量类型的二维数组数组

Arj*_*321 1 arrays multidimensional-array swift

您可以使用以下命令快速创建一种类型变量的二维数组:

var array2D: [[String]] = [["hi", "bye"], ["hello", "goodbye"]]
Run Code Online (Sandbox Code Playgroud)

我想创建一个二维数组,其中第二个变量为 Float,如下所示:

var array2d2types = [[String,Float]] = [["height",1],["width",2]]
Run Code Online (Sandbox Code Playgroud)

但这给出了错误:Cannot assign to immutable expression of type '[[Any]]'

如何创建一个数组数组,每个数组都有一个字符串和一个浮点数?

Dáv*_*tor 5

Swift 数组是同构的,因此不能在同一个数组中存储不同类型的元素。但是,您可以使用元组数组而不是嵌套数组来实现您的目标。

let array: [(String,Float)] = [("height",1),("width",2)]
Run Code Online (Sandbox Code Playgroud)

您可以使用正常的下标语法访问元组

let firstTuple = array[0]
Run Code Online (Sandbox Code Playgroud)

以及使用点语法的元组元素

let height = firstTuple.0
let heightValue = firstTuple.1
Run Code Online (Sandbox Code Playgroud)

但是,您应该使用自定义结构,甚至更好的是使用内置结构CGSize来存储高度宽度值。