对于使用flatMap的代码
let scoresByName = ["Henk": [0, 5, 8], "John": [2, 5, 8]]
let flatMap = scoresByName.flatMap {
$0.key
}
print(flatMap)
o/p是[“J”、“o”、“h”、“n”、“H”、“e”、“n”、“k”]
对于使用map的代码
let scoresByName = ["Henk": [0, 5, 8], "John": [2, 5, 8]]
let flatMap = scoresByName.map {
$0.key
}
o/p是[“John”,“Henk”]
为什么flatMap要把键“Henk”和“John”拆分成字符?
1条答案
按热度按时间gjmwrych1#
flatMap
是“map,and then flatten”。“Flatten”的意思是把一个序列的序列变成一个包含所有元素的数组。[ [1,2], [3,4] ]
变为[1,2,3,4]
。因此,第一步是
map
的输出,即["John", "Henk"]
。每个字符串都是一个字符序列,所以flatten将其合并到一个字符数组中。