【问题标题】:How can I declare a two dimension array with different types in swift?如何快速声明具有不同类型的二维数组?
【发布时间】:2016-01-20 02:28:25
【问题描述】:

二维数组 - Ints

// Works!
var foo = [[Int]]() 

二维数组 - 整数/字符串

// Neither work.  Halp!

var foo = [String][Int]() 
var foo = [String[Int]]() 

我找到了this question,这让我相信这是可以做到的,但不建议这样做。

【问题讨论】:

  • AnyObject... 也许吧?
  • 正如您发现的问题的验证答案所建议的那样:使用元组。 [[(String, Int)]]
  • 不同类型的二维数组如何存在?????
  • 哪种类型的数组 arr[x][y] 中应该有一个元素,其中 x 和 y 是不同“维度”的索引?你的问题对我没有任何意义。
  • 知道了。是的。愚蠢的问题。根据定义,二维数组永远不会是不同的类型。

标签: swift swift2


【解决方案1】:

这里的最佳做法是使用不同类型的两个值的元组

var foo:[(String, Int)] = []

或者如果你想使用不同类型的值

var foo:[(AnyObject, AnyObject)] = []

但是如果你希望它是一个多维数组,那么就让它不是类型特定的:

var foo:[[AnyObject]] = []

【讨论】:

  • 感谢您的回答。我将此建议理解为推荐做法。我计划接受这样的答案:“是的,这就是你的做法”或者说“这在 swift 中是不可能的。改用元组数组。”
  • @AdamKalnas 你能给我们一个这种类型或二维数组的例子吗?在任何编程语言语法中......对我来说没有意义
  • @user3441734 他的意思可能是一个二维数组,你可以用字符串和整数填充它
  • @AdamKalnas 好的,我编辑了答案,所以你现在可以标记它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
  • 2016-12-09
相关资源
最近更新 更多