> On Dec 18, 2015, at 6:52 AM, Al Skipp <[email protected]> wrote:
> 
>> On 18 Dec 2015, at 03:27, Matthew Johnson via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> Swift currently offers dot shorthand for static members of type Self in type 
>> contexts expecting a value of the type in question.  This is most commonly 
>> used with enum cases.
>> 
>> Swift does not currently offer shorthand for instance members.  Introducing 
>> a shorthand for instance members would improve clarity and readability of 
>> code in common cases:
>> 
>> anArray.map{$0.anInstanceMethod()}
>> 
>> becomes:
>> 
>> anArray.map(.anInstanceMethod())
>> 
>> This shorthand would work in typing contexts expecting a single argument 
>> function.  It would allow abbreviated access to any visible instance 
>> property getter or instance method on the type of the argument.  Of course 
>> the return type would need to match the return type expected by the context 
>> or a type mismatch compiler error would occur.
>> 
>> The readability advantage is arguably small but it does exist.  The feature 
>> also aligns very well with an existing language feature.
>> 
>> I think it’s an interesting idea and am wondering whether others feel like 
>> it is something worth pursuing or not.
>> 
>> Matthew
> 
> I’d be interested to hear peoples thoughts regarding this proposal. I’m 
> personally in favour, but perhaps there are potential issues with the 
> suggestion?
> 
> It’s only a small visual change, but I think it is a syntactic improvement. 
> Let’s pretend for a moment that the current syntax was:
> anArray.map(.anInstanceMethod())
> 
> I’m not sure many people would argue for it to be changed to:
> anArray.map { $0.anInstanceMethod() }

Thanks Al.  I should have also pointed out that the syntactic advantage is a 
bit greater in other contexts where the braces would not replace parentheses:

struct S {
  var predicate: String -> Bool
}

var s = S()
s.predicate = { $0.hasPrefix(“abc”) }

vs
s.predicate = .hasPrefix(“abc”)

It’s not a super important change, but maybe a low-hanging fruit item that can 
improve clarity and readability.

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

Reply via email to