尝试理解Swift中map和flatMap输出的区别

sczxawaw  于 2023-05-16  发布在  Swift
关注(0)|答案(1)|浏览(140)

对于使用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”拆分成字符?

gjmwrych

gjmwrych1#

flatMap是“map,and then flatten”。“Flatten”的意思是把一个序列的序列变成一个包含所有元素的数组。[ [1,2], [3,4] ]变为[1,2,3,4]
因此,第一步是map的输出,即["John", "Henk"]。每个字符串都是一个字符序列,所以flatten将其合并到一个字符数组中。

相关问题