Nesting
Obviously, you can also nest KeyPaths. Now, our User also has an address:
struct Address {
var street: String
}
struct User {
var username: String
var address: Address
}
If we want to create a keypath to the amount of characters of the street of the user's address, we can simply do that like this:
let keyPath: KeyPath<User, Int> = \User.address.street.count
As you can see, this is a KeyPath from User to Int because it points from the User to his address' street' count. count, finally, is a Int type.
