Swiftのクロージャの使い方についての質問
Swiftで、以下のコードが何をやっているのか教えてください。
https://github.com/johnjcsmith/iPhoneMoCapiOS/blob/master/iPhoneMoCap/FaceGeoViewController.swift
let message = $0.reduce("", {
result, input in
result.appending("\(input.key.rawValue) - \(Int(input.value.doubleValue * 100))|")
})
私には、上記のコードを読んでも、「クロージャを使って、何らかの値を足し合わせたりしている感じなんだろうか?」というざっくりしたことしか分かりません。。
エスケープ文字回避なのか何なのか、(input.key.rawValue)の前の部分に、バックスラッシュが入っている理由や、"|"が入っている理由が分かりません。
また、プログラム内の他の箇所にresult変数やinput変数が出てきていないのに突然登場してきて理由などもよく分かりません。
reduceの後に空白の文字列、""が登場しているのは、この文字列に何かを足し合わせて代入しているという感じなのでしょうか??
全体的にswiftのことをよく知らないのでこの文法について教えていただけると嬉しいです。