Изменения в новых версиях / Swift 5.2

struct User {
    let name: String
    let age: Int
    var isAdult: Bool { age >= 18 }
}

// *** before: ***
let namesOld = users.map { $0.name }
let adultsOld = users.filter { $0.isAdult }
let agesOld = users.map { $0.age }

// *** in version 5.2: ***
let names = users.map(\.name)
let adults = users.filter(\.isAdult)
let ages = users.map(\.age)

// a key path fits anywhere a function of one argument is expected
let show: (User) -> String = \.name
print(users.map(show))

// where two arguments are needed, a closure stays
let sorted = users.sorted { $0.age < $1.age }