【问题标题】:Array of strings and ints in swiftswift中的字符串和整数数组
【发布时间】:2018-01-12 18:42:11
【问题描述】:

我正在尝试创建一个数组数组,其中每个嵌套数组都有一个字符串和一个整数。

我看到你可以使用结构体,但我想做的只是让它们成为一个常量,我想知道是否有办法做到这一点而不必输入大量额外的东西

let items: [[String, Int]] = [["A", 1], ["B", 2], ["C", 3]]

【问题讨论】:

  • 1.那些不是元组。为什么用元组标记? 2. 你指的是什么额外的东西?你的问题根本不清楚。
  • 怎么不清楚?我想在一个数组中混合字符串和整数。

标签: arrays swift tuples


【解决方案1】:

我认为你想要的是一个元组数组,而不是一个数组数组。该实现如下所示:

let items: [(String, Int)] = [("A", 1), ("B", 2), ("C", 3)]

您可以像这样访问这些属性:

let itemOneString = items[0].0 // "A"
let itemOneInt = items[0].1 // 1

【讨论】:

    【解决方案2】:

    它会为你工作:

    let items: [[(String, Int)]] = [[("A", 1)], [("B", 2)], [("C", 3)]]

    【讨论】:

    • 为什么要多出一层数组?为什么不简单地有一个元组数组而不是一个元组数组?
    • @rmaddy 为什么不用 struct 而不是 tuple?它更具代表性,而不仅仅是一个元组
    • 问 OP,而不是我。我同意结构更好。但这与您的答案无关,因为您的答案有多余的数组层。
    【解决方案3】:
    1. 数组是相似数据类型的集合。它不能包含异构类型的数据。

    但如果你仍然想这样做。还有其他解决方法,例如像这样创建dictionary 的数组。

    let items: [[String: Any]] = [["String" : "A", "Int" : 1], ["String" : "B", "Int" : 2]]
    

    或者创建一个Tuples的数组。

    let items: [(String, Int)] = [("A", 1), ("B", 2), ("C", 3)]
    

    您可以在TupleDictionary 中添加任意数量的项目。

    【讨论】:

      猜你喜欢
      • 2018-10-13
      • 1970-01-01
      • 2016-01-25
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多