> 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