Avatar
@omochimetaru ウオオわかりやすい…!分かった気がします ありがとうございます! なるほど、Stringを食わせるとそうなるはずなんですね‥たしかに flatMap すると flatten されてそうなるのが確認できました 最初自分が試していたやつなんですが、 swift-evolutionで紹介されてたgetNames() をそのままprintすると ["mike", "mike", "mike"] が出力されてしまうのですが、関数に包まずにそのまま.flatMapするのとこれって何か違うんでしょうか?(なんか初歩的な勘違いをしてるのかもです) struct Cat { var age: Int = 3 var name: String = "mike" } var cats = [Cat(), Cat(), Cat()] let x = cats.flatMap { $0.age } print(x) let y = cats.flatMap { $0.name } print(y) // ["m", "i", "k", "e", "m", "i", "k", "e", "m", "i", "k", "e"] func getNames(cats: [Cat]) -> [String] { return cats.flatMap { $0.name } } let z = getNames(cats: cats) print(z) // ["mike", "mike", "mike"] <- ?!