[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