[swift-evolution] [Review #2] SE-0161: Smart KeyPaths: Better Key-Value Coding for Swift

David Hart david at hartbit.com
Thu Apr 6 08:07:05 CDT 2017


> On 6 Apr 2017, at 15:03, Ed Wellbrook via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Apologies if I’ve simply just missed something, but are the trailing right parentheses in the proposed solution intentional? Reading through the code, having loosely followed this discussion, I’m really confused.
> 
> Examples:
> 
> ```
> // create a key path and use it
> let firstFriendsNameKeyPath = \Person.friends[0].name)
>                                                     ^ this
> 
> // optional properties work too
> let bestFriendsNameKeyPath = \Person.bestFriend?.name)
>                                                     ^ this
> ```
> 
> If it’s intentional, I’m very much against it.
> 

It’s a typo. It shouldn’t be there.

> Cheers,
> Ed
> 
>> On 6 Apr 2017, at 13:14, Ricardo Parada via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> 
>>> On Apr 5, 2017, at 11:13 PM, Xiaodi Wu <xiaodi.wu at gmail.com> wrote:
>>> 
>>> It is also worth mentioning that, with the sigil, the `keyPath` label may not be so necessary:
>>> 
>>> 	print(luke[\.friends[0].name])
>>> 	// or, if the suggestion above is accepted
>>> 	print(luke[\.friends[0].name\])
>> 
>> 
>> I think the label makes it more obvious, specially when using it with a key path variable:
>> 
>> let someKeyPath = ...
>> 
>> person[
>> keyPath: someKeyPath]
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list