2017-01-23 34 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