> On Apr 6, 2017, at 10:37 AM, Douglas Gregor via swift-evolution 
> <[email protected]> wrote:
> 
> 
>> On Apr 6, 2017, at 10:28 AM, Ricardo Parada <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Do you think in the future it might be possible to convert to strings?  
>> 
>> For example, I am imagining a CoreData-like framework on the server (where 
>> there is no Objective-C), where I would like to get the type of the root 
>> object and keys forming the path.  That way I can go to an object model, get 
>> the corresponding entity, and traversed relationships, and destination 
>> attribute.  All that information (table name, table joins for the 
>> relationships traversed, column names, etc.) would then be used to construct 
>> the SQL.
> 
> Key-paths could be extended to allow introspection of the components along 
> the path, in which case you would be able to map between key paths into your 
> specific data model and the tables/columns in your database. This is not the 

... ?  You left us hanging there Doug! :)

We do mention in the proposal that support for marshalling to external 
representation (String, Codable should that be accepted, etc) would highly 
desirable in the future, for IB / CoreData type scenarios and more.  It is one 
of the principle reasons we decided not to allow key paths to compose with 
transformations (functions and closures), as while that is very powerful and 
interesting, once you go there you're not really a key path any more. 

It's not part of this initial proposal, but could easily be brought up as a 
follow-on in the future. 

-Michael


> 
>       - Doug
> 
>> 
>> 
>> 
>>> On Apr 6, 2017, at 12:37 PM, Douglas Gregor <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>>> 
>>>> On Apr 6, 2017, at 9:31 AM, Sean Heber <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> 
>>>>> On Apr 6, 2017, at 11:19 AM, Douglas Gregor <[email protected] 
>>>>> <mailto:[email protected]>> wrote:
>>>>> 
>>>>>> 
>>>>>> On Apr 6, 2017, at 8:13 AM, Ricardo Parada via swift-evolution 
>>>>>> <[email protected] <mailto:[email protected]>> wrote:
>>>>>> 
>>>>>> I agree, there's an analogy between strings and key paths, and in that 
>>>>>> regards the single quote would make sense.  I would not complain.  
>>>>> 
>>>>> The only analogy between strings and key-paths is that the existing Cocoa 
>>>>> APIs for key-paths use strings. That’s not an analogy to hang language 
>>>>> syntax on, because it’s relevance will fade quickly. 
>>>> 
>>>> Why would it fade quickly? Do we expect the concept of keypaths to go away 
>>>> over time? If so, why are we even designing a syntax for keypaths?
>>> 
>>> The link between key-paths and strings will go away over time. The *only* 
>>> reason anyone associates strings with keypaths is because Cocoa’s current 
>>> key-paths are string-based. This proposal makes any string representation 
>>> of key-paths an implementation detail that could be used for 
>>> interoperability with Cocoa’s current system. There is no reason for a 
>>> type-unsafe string representation to ever be in the user model.
>>> 
>>> 
>>>>> The core team discussed single quotes, and decided that we want to save 
>>>>> them for something in the string/character realm.
>>>> 
>>>> Are they to be saved for something specific or is this just because a lot 
>>>> of languages use single quotes for character literals? Why is this 
>>>> association any more sacred than an association with Cocoa string keypaths?
>>> 
>>> 
>>> Lots of languages use single quotes for character literals; we may want to 
>>> bring them back for it.
>>> 
>>>     - Doug
>> 
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to