这个字典迭代在swift中是什么意思?

这个字典迭代在swift中是什么意思?,swift,dictionary,iteration,Swift,Dictionary,Iteration,swfit中的字典和迭代操作 let namesAndScores = ["Anna": 2, "Brian": 2, "Craig": 8, "Donna"; 6] for key in namesAndScores.keys { print("\(key), ", terminator: "") } print("") 结果是Brian Anna Craig Donna 这个手术在做什么?为什么“终结者:”没有出现在结果中 问:这项行动在做什么? 下一行是[String:Int]

swfit中的字典和迭代操作

let namesAndScores = ["Anna": 2, "Brian": 2, "Craig": 8, "Donna"; 6]
for key in namesAndScores.keys {
    print("\(key), ", terminator: "")
}
print("")
结果是Brian Anna Craig Donna

这个手术在做什么?为什么“终结者:”没有出现在结果中

问:这项行动在做什么? 下一行是
[String:Int]

let namesAndScores = ["Anna": 2, "Brian": 2, "Craig": 8, "Donna": 6]
接下来,注意循环中的以下行:

namesAndScores.keys
.keys
属性为我们提供了一个新的数组,该数组仅由字典中的键组成。例如:

let keys = ["Anna", "Brian", "Craig", "Donna"]
print("\(key), ", terminator: " -hi- ")
接下来,您只需在上面描述的数组中循环:

for key in namesAndScores.keys {
    print("\(key), ", terminator: "")
}
问:为什么“终结者:”没有出现在结果中? Terminator只是一个参数,用于设置打印行终止符。换句话说,它允许您选择每行之后打印的内容。默认情况下,它的
“\n”
为我们提供了一个新行

在您的示例中,您有:
print(\(键),”,终止符:)
。将打印语句的终止符设置为
。您只是告诉您的
print()
函数在不带尾随换行符的情况下打印。这样可以打印您的值:

布莱恩,安娜,克雷格,唐娜

但是,您可以将任何字符串传递到终止符参数中,例如:

let keys = ["Anna", "Brian", "Craig", "Donna"]
print("\(key), ", terminator: " -hi- ")
这会给你这个:

布莱恩-嗨-安娜-嗨-克雷格-嗨-唐娜-嗨-

因此,当您只使用公共
打印(\(键),”
而不设置终止符时,您的终止符参数将获得一个默认值,该值相当于:

print("\(key), ", terminator: "\n") 
这将在新行上打印每个项目,如下所示:

布莱恩,
安娜,
克雷格,
唐娜

根据评论更新:

问:为什么结果中布莱恩在安娜之前,而布莱恩在安娜之后 安娜在字典里? 字典没有分类。因此,从
.keys
生成的数组将以不可预测的顺序排列。幸运的是,只需添加
.sort,就可以对结果数组进行适当排序(
问:这项行动在做什么?
下一行是
[String:Int]

let namesAndScores = ["Anna": 2, "Brian": 2, "Craig": 8, "Donna": 6]
接下来,注意循环中的以下行:

namesAndScores.keys
.keys
属性为我们提供了一个新的数组,该数组仅由字典中的键组成。例如:

let keys = ["Anna", "Brian", "Craig", "Donna"]
print("\(key), ", terminator: " -hi- ")
接下来,您只需在上面描述的数组中循环:

for key in namesAndScores.keys {
    print("\(key), ", terminator: "")
}
问:为什么“终结者:”没有出现在结果中? Terminator只是一个参数,用于设置打印行终止符。换句话说,它允许您选择每行后面打印的内容。默认情况下,它的
“\n”
为我们提供了一个新行

在您的示例中,您有:
print(\(key),”,terminator:)
。当您的print语句的terminator设置为
。您只需告诉您的
print()
函数在不带尾随换行的情况下进行打印。它会像这样打印您的值:

布莱恩,安娜,克雷格,唐娜

但是,您可以将任何字符串传递到终止符参数中,例如:

let keys = ["Anna", "Brian", "Craig", "Donna"]
print("\(key), ", terminator: " -hi- ")
这会给你这个:

布莱恩-嗨-安娜-嗨-克雷格-嗨-唐娜-嗨-

因此,当您只使用公共
打印(\(键),”
而不设置终止符时,您的终止符参数将获得一个默认值,该值相当于:

print("\(key), ", terminator: "\n") 
这将在新行上打印每个项目,如下所示:

布莱恩,
安娜,
克雷格,
唐娜

根据评论更新:

问:为什么结果中布莱恩在安娜之前,而布莱恩在安娜之后 安娜在字典里?
字典是未排序的。因此,从
.keys
生成的数组将以不可预测的顺序排列。幸运的是,只需添加
.sort,即可对生成的数组进行适当排序(太好了!!!还有一个问题,为什么布莱恩在结果中在安娜之前,而布莱恩在字典中在安娜之后?我肯定选择了你的答案。谢谢你的帮助。太好了!!!还有一个问题,为什么布莱恩在结果中在安娜之前,而布莱恩在字典中在安娜之后?我肯定选择了你的答案。谢谢你的帮助。