如何更改Arrays [[Int]]数组中的下标坐标,使单元格的寻址方式为table[column-letter][row-number],与Excel相同,而不是给定表的当前ios table[row-number][column-number],如下所示:
var table = [[0, 1, 2, 3],
[1, 32, 44, 25],
[2, 12, 66, 43],
[3, 3, 4, 5]]今天是table[2][1] = 12,但我想要table[C][1] = 44。
我需要这个变化,以适应公式从Excel到我的应用程序,而不改变坐标系或表格从excel。
我知道在Array类中有一些下标函数可能会有帮助,但是到目前为止我还不能让它工作。
发布于 2018-10-23 18:31:39
你知道什么是[2][1]吗,你在告诉编译器,
我想要数组中索引为[2]的元素,通过添加另一个[1],您告诉它您需要索引为[1]的元素,该元素位于[2]的结果中。
这是一个Arrays的Array,如果你再看一眼,它是这样的,
[[],[],[]] // no matter what is the values inside indexing is always the same有了这一点,现在让我们看看你想做什么。
[C][1] = 44正如您现在可能可以看出的那样,这是无效的,因为[C]不是一个有效的索引,因为索引只接受Integer类型。
那么我们能做些什么呢?
嗯,你可以试试字典,阅读关于它们的here。
使用字典时,您将能够获得如下所示的值
value = table["C"]?[1]或者看一下这个例子。
var foo :[String:[Int]] = ["A":[1,2,3], "B":[1,2,3]]
let colm = foo["A"]?[0]编辑另一个受@Paulw11启发的解决方案
使用此"A".utf16.first! - 65将返回0 index以在数组内使用,因此您可以另外指定从A到Z
table = ["MyChar".utf16.first! - 65][2]https://stackoverflow.com/questions/52946596
复制相似问题