Rod*_*ici 6 syntax dictionary swift
我正在寻找一个最好的语法:
let responseParameters = ["keyA" : "valueA", "keyB" : "valueB"]
var responseString = ""
for (key, value) in responseParameters {
responseString += "\(key):\(value)"
if Array(responseParameters.keys).last != key {
responseString += "+"
}
}
//responseString: keyA:valueA+keyB:valueB
Run Code Online (Sandbox Code Playgroud)
类似于数组joinWithSeparator,使用flatMap或类似的东西.(学习目的)
Ale*_*ica 14
您可以映射字典中的键/值对以将它们转换为字符串数组,然后您可以将它们与+.但请记住,字典是无序的,因此这不会保留输入顺序.
let responseParameters = ["keyA" : "valueA", "keyB" : "valueB"]
let responseString = responseParameters.map{ "\($0):\($1)" }
.joinWithSeparator("+")
Run Code Online (Sandbox Code Playgroud)
字典不是有序集合,因此您必须在访问键值对的“有序版本”之前对键进行排序。例如
let responseParameters = ["keyA" : "valueA", "keyB" : "valueB", "keyC" : "valueC"]
let responseString = responseParameters
.sort { $0.0 < $1.0 }
.map { $0 + ":" + $1 }
.joinWithSeparator("+")
print(responseString) // keyA:valueA+keyB:valueB+keyC:valueC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2717 次 |
| 最近记录: |