map()
にKeyPathを渡す時に定数にしてから渡すとコンパイルできないのは既知ですか? struct Hoge { var value: String } let hoges = [Hoge]() // コンパイル通る✅ _ = hoges.map(\Hoge.stringValue) let keyPath = \Hoge.stringValue // コンパイル通らない❌ _ = hoges.map(keyPath)
_ = hoges.map { $[keyPath: keyPath] }
なら当然ですがコンパイル通ります。