The rationale for using the same syntax is that a KeyPath is an unapplied property/subscript access. Even the multi-segment part of it isn't necessarily dissimilar: I don't think it would be unreasonable to imagine that \Foo.someMethod.someOtherMethod could work*, that'd just be function composition after all.
KeyPath : Properties/Subscripts :: Functions with a self argument : Methods David *not proposing this, haven't thought carefully about whether there are edge cases I'm missing here, but I think the analogy holds > On Apr 5, 2017, at 5:16 PM, Patrick Smith via swift-evolution > <swift-evolution@swift.org> wrote: > > I too find the backslash odd, as it’s usually of course used to escape > something. > > What about three periods? > > let firstFriendsNameKeyPath = Person...friends[0].name > print(luke[keyPath: ...friends[0].name]) > > > I also find wanting to use the same syntax for unapplied methods strange, as > they would product two totally different things: one a key path value, the > other a function. > > Patrick > On Thu, 6 Apr 2017 at 10:00 am, Douglas Gregor via swift-evolution > <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> On Apr 5, 2017, at 4:55 PM, Colin Barrett <co...@springsandstruts.com >> <mailto:co...@springsandstruts.com>> wrote: >> >> Is the choice of backslash up for review? I think another operator, > > We talked through basically everything on the keyboard, and there really > aren’t other options that don’t stomp on existing behavior. > >> perhaps backtick (`), would work better. > > Backtick (`) is already taken for escaping identifiers, e.g., > > var `func` = { /* some code */ } > > - Doug > > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org <mailto:swift-evolution@swift.org> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution> > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution