【问题标题】:How to sort in Swift如何在 Swift 中排序
【发布时间】:2017-01-23 01:23:20
【问题描述】:

上网查找以更好地了解 Xcode 和 Swift,我尝试了一些方法并得到了错误。我正在使用 Xcode 8.2.1。我尝试过使用sort,但我使用的是swift版本,我有sorted(by:),到目前为止我还没有让它工作。如果你能解释一下我需要做什么,也许可以留下一个非常感谢的例子!

我有 4 个任务要做。

  1. 将唯一随机数列表分配给 5 个变量和 5 个常量。 (不确定我这样做的方式是否正确或是否应该使用 Int(arc4random_uniform(50))

  2. 将它们放在一个数组中

  3. 升序排列

  4. 使用键值将它们存储在字典中,以便轻松检索最高和最低数字。

我将把我的代码留在这里。

【问题讨论】:

  • 您认为错误消息“Expected ]”可能意味着什么?你有多少?你有多少个“]”?
  • 我所知道的是,= 符号下面有一个小箭头。当我将 [Int] 写为 [Int]] 时,我得到一个不同的错误,说 '[String : [Int]]' 不能与数组文字一起使用。
  • 欢迎来到 SO。不要张贴代码图片。将您的实际代码复制/粘贴到您的答案中,并使用代码标记工具将其标记为代码。 (如果您选择一个文本块并点击“{}”按钮,它会将代码块缩进 4 个空格,从而导致标记显示将其放入代码块中。)
  • 关于您的最后一点,字典与此有什么关系。对数组进行排序后,可以使用 firstlast 方法快速获取这些值。字典与它有什么关系?
  • 这听起来像是我的学校作业。第 1 步和第 4 步似乎很愚蠢、武断且毫无意义。直接用 5 个随机数填充一个数组,而不是将值存储到单独的变量中,这样会更干净、更简单。

标签: ios arrays swift sorting


【解决方案1】:

是的,您可能应该使用 arc4random_uniform 来生成随机数。

如果您必须将结果存储到字典中(这很愚蠢,正如 Rob 在他的评论中指出的那样),我建议使用 [Int:Int] 类型的字典。这样您就可以使用数组索引作为键。

因此您的字典声明将是这样的:

var resultsDict: [Int:Int] = [:]

你可以使用

来填充你的字典
for (index, value) in array.enumerated {
  resultsDict[index] = value
}

然后您可以使用获取第一个结果

resultsDict[0]

并使用获取最后一个结果

resultsDict[resultsDict.count - 1]

【讨论】:

    【解决方案2】:

    从用例来看,将它们放在变量和常量中是没有意义的

    我的解决方案是:

    // 1. Assign a list of unique random numbers to 5 variables and 5 constants. why variables and constants?
    // 2. Place them in an array
    var arr = (1...10).map{ _ in Int(arc4random_uniform(50)) }
    print(arr) // -> [19, 41, 27, 47, 12, 38, 38, 48, 5, 41]
    
    // 3. Sort by ascending order 
    arr.sort()
    print(arr) // -> [5, 12, 19, 27, 38, 38, 41, 41, 47, 48]
    
    // 4. to retrieve the highest and lowest number easily
    print(arr.first!) // -> 5
    print(arr.last!)  // -> 48
    

    或者简而言之:

    var arr2 = (1...10).map{ _ in Int(arc4random_uniform(50)) }.sorted()
    
    print(arr2)        // -> [4, 5, 14, 20, 21, 27, 30, 37, 39, 43]
    print(arr2.first!) // -> 4
    print(arr2.last!)  // -> 43
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多