[swift-evolution] Smart KeyPaths

Vladimir.S svabox at gmail.com
Wed Mar 22 10:36:39 CDT 2017


On 22.03.2017 17:37, Ricardo Parada wrote:
>
>
>> On Mar 22, 2017, at 9:30 AM, Vladimir.S <svabox at gmail.com> wrote:
>>
>> let path = @Bag.things[0].name
>>
>> bag at path
>> bag at .things[0].name
>> bag at Bag.things[0].name
>> bag.things[0]@.name
>> bag.things[0]@Thing.name
>
> It sounds like the @ character is serving two different purposes which confused me at first.
>
> If I understood correctly, you are using it to get the key path but also to apply the key path to the bag struct and get the corresponding value.
>

Yes. And the initial proposal suggest the following syntax accordingly:

let path = Bag.things[0].name
bag[path]
bag[.things[0].name]
bag[Bag.things[0].name]
bag.things[0][.name]
bag.things[0][Thing.name]


More information about the swift-evolution mailing list