2016-10-14 56 views
-6

級聯字典值I創建的字典中夫特像:在夫特

var dict:[String : Int] = ["A": 1, "B": 2, "C": 3, "D": 4] 

print(dict["A"]!) 

計算機打印號碼1,但如何級聯這些值,使得輸出是1234,而不是一個單一的整數。

回答

-1
let dict = ["A": 1, "B": 2, "C": 3, "D": 4] 

for entry in dict.sorted() 
{ 
    print("\(entry.1)", terminator: "") 
} 
+0

Downvote,因爲它不連接字符串,但只有輸出? :) – yeoman

2

Dictionary中的鍵值對是無序的。如果你想訪問它們按照一定的順序,你必須將自己的鍵排序:

let dict = ["A": 1, "B": 2,"C": 3,"D": 4] 

let str = dict.keys 
      .sorted(by: <) 
      .map { dict[$0]! } 
      .reduce ("") { $0 + String($1) } 

或者:

let str = dict.keys 
      .sorted(by: <) 
      .map { String(dict[$0]!) } 
      .joined() 

不知道關於兩者的相對錶現,因爲我還沒有基準他們。但是,除非你的字典很大,否則差異會很小。

+1

我不確定OP自己想要什麼,但上面的方法的另一種變體是直接對字典進行排序,而不是顯式訪問用於排序的(無序)鍵數組('let str = dict。排序{$ 0.1 <$ 1.1} .reduce(「」){$ 0 + String($ 1.1)}')。 – dfri

+0

@dfri也適用。如果你答案是肯定的,我會加大對它的支持 –

+0

如果你願意,可以自由地將它添加到你的答案中,它實際上只是你的替代方案的變體。 – dfri