2017-01-23 51 views
-6

在线查看以更好地理解Xcode和Swift,我尝试了一些东西并获得错误。我使用Xcode 8.2.1。我试过使用sort,但是我对于swift的版本我有它的sorted(by:),我还没有得到它的工作到目前为止。如果你可以请解释我需要做什么,也许留下一个非常感谢的例子!如何在Swift中排序

我应该做4项任务。

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

  2. 在阵列置于它们的方式

  3. 排序利用关键升序

  4. 它们存储在字典值来轻松地检索最高和最低数。

我会在这里留下我的代码。

code snippet

+1

你觉得什么错误消息“Expected”)可能意味着什么?你有多少?你有多少? – Gruntcakes

+0

我所知道的一切都是=号下有一个小箭头。当我把[Int]写成[Int]]时,我得到一个不同的错误,说'[String:[Int]]'不能用于数组文字。 – Cynthia

+4

欢迎来到SO。不要张贴代码图片。将实际代码复制/粘贴到答案中,并使用代码标记工具将其标记为代码。(如果您选择了一段文本并点击“{}”按钮,它会将代码块缩进4个空格,导致标记显示将其放入代码块中。) –

回答

2

是的,你应该使用arc4random_uniform来产生你的随机数。

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

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

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

你可以填充使用

for (index, value) in array.enumerated { 
    resultsDict[index] = value 
} 

你的字典然后,你可以获取使用

resultsDict[0] 

而且第一个结果使用

获取最后一个结果
resultsDict[resultsDict.count - 1] 
1

从使用情况下,它是没有意义的将它们放置在变量和常量

我的解决办法是:

// 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