[swift-evolution] Smart KeyPaths

Ricardo Parada rparada at mac.com
Wed Mar 22 15:51:05 CDT 2017


Yes, I was about to ask the same.  

It seems like all the sigil characters are taken.  This is one of the reasons why I did not object to the non-sigil notation originally proposed despite the ambiguity with static properties and instance properties with the same name.  But using a sigil seems like it can unify method references and key path references.

Is the single quote taken?  For example:

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

And the examples on the proposal would become:

'Person.friends[0].name
luke['.friends[0].name]
luke.friends[0]['.name]

If we were to put it between root and the path then it would look like this:

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


Right now the compiler tells me that it found an "unterminated string literal".  

When I add the closing single quote then it tells me "single-quoted string literal found, use '"' instead"




> On Mar 22, 2017, at 3:16 PM, Brent Royal-Gordon via swift-evolution <swift-evolution at swift.org> wrote:
> 
>> On Mar 22, 2017, at 9:00 AM, Vladimir.S via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> 
>> bag[#path]
> 
> What do these do?
> 
> 	bag[#file]
> 	bag[#line]
> 	bag[#function]
> 	// etc.
> 
> -- 
> Brent Royal-Gordon
> Architechies
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170322/8f6fe662/attachment.html>


More information about the swift-evolution mailing list