代码如下:
let values = ["small":30, "middle":50, "large":70]
var result = "Hello"
for a in values {
result += a.0
}
print(result)
结果是:
Hellomiddlesmalllarge
我认为结果应该是:
Hellosmallmiddlelarge
谁能告诉我原因?感谢
答案 0 :(得分:1)
字典没有订单。无论你在迭代它时获得的隐式顺序是依赖于实现的。 SwiftStub(在OS X上运行)和IBM Swift Sandbox(Linux)给出不同的命令。两者都有效,因为标准没有规定任何订单。
如果您想按字母顺序排序字典,则必须明确排序:
let values = ["small":30, "middle":50, "large":70]
var result = "Hello"
values.sort {
$0.1 < $1.1
}.forEach {
result += " " + $0.0
}
print(result)