将整行附加到2D数组

时间:2019-04-23 04:16:03

标签: swift

我正在尝试将整行附加到数据上。完整的示例实际上是二维数组的字典:

  1> var a: [String:[[Double]]] = [:] 
a: [String : [[Double]]] = 0 key/value pairs
  2> a["a"] = []
  3> a["a"].append([0.1, 0.2])
error: repl.swift:3:2: error: value of type '[[Double]]?' has no member 'append'
a["a"].append([0.1, 0.2])
~^~~~~ ~~~~~~

我如何获得["a":[[0.1, 0.2], [0.2, 0.3]]] 鉴于我不会事先知道键“ a”是什么,也不知道行数或它们的值,直到以后执行各个不同的点?

2 个答案:

答案 0 :(得分:1)

出现错误的原因是您尝试附加到可选内容。将其更改为a[“a”]?.append([0.1, 0.2])

要获得预期的输出结果

var a: [String: [[Double]]] = [:]

a["a"] = []
a["a"]?.append([0.1, 0.2])
a["a"]?.append([0.2, 0.3])

另一种方法

var a: [String: [[Double]]] = [:]

a["a"] = [[0.1, 0.2], [0.2, 0.3]]

答案 1 :(得分:1)

由于a["a"]返回一个可选内容(因为字典中可能没有键"a"),因此您需要使用a["a"]?.append([0.1, 0.2])

另一种选择是提供默认值:

a["a", default: []].append([0.1, 0.2])

这甚至消除了对a["a"] = []行的需要。