[swift-evolution] [Proposal]: support disable to trailing closure syntax
Jérôme Duquennoy
jerome+swift at duquennoy.fr
Tue Jan 5 07:35:00 CST 2016
Hi everybody,
I do agree with Kevin : trailing closures is only a possibility offered by the language, you are not forced to use it.
In the case you show, I agree that the second syntax is more readable than the first one. Good news is : it does compile :-).
I think adding a specific keyword or annotation to locally forbid trailing closure would add complexity to the language for no real advantage.
-1 for me thus.
Jerome
> On 04 Jan 2016, at 19:52, Kevin Ballard via swift-evolution <swift-evolution at swift.org> wrote:
>
> What's the point of this? What problem does it solve? If you don't want a trailing closure, just don't use trailing closure syntax. I don't see what benefit there is in explicitly annotating the function to disallow trailing closure syntax with it; just because you don't want to use trailing closure syntax doesn't mean nobody should be able to use it. And other people using it shouldn't affect you.
>
> -Kevin Ballard
>
> On Mon, Jan 4, 2016, at 04:45 AM, QQ Mail via swift-evolution wrote:
>> Hi, All:
>> trailing closure is good for most cases, but sometimes it is also make code unclear, for example:
>>
>> UIView.animateWithDuration(0.3, animations: { () -> Void in
>> // animation code here
>> }) { (Bool) -> Void in
>> // completion code here
>> }
>>
>> the label been removed and the code also not aligned well.
>> I would like to write like this:
>>
>> UIView.animateWithDuration(0.3,
>>
>> animations: { () -> Void in
>> // animation code here
>> },
>> completion: { Bool -> Void in
>> // completion code here
>> }
>> )
>>
>> It is possible, just every time you have to write it manually. It’s a little wast.
>> So I have a thought, since we already know this function is not well suit for trailing
>> closure, can we add a attribute to disable it, for example:
>>
>> extensionUIView {
>>
>> @disable_trailing_closure
>> public static func animateWithDuration(duration:NSTimeInterval, animations:()->Void, completion:()->Void) {
>> // implementations ...
>> }
>> }
>>
>> I also found another one have issue for this too. link: http://www.natashatherobot.com/swift-trailing-closure-syntax/ <http://www.natashatherobot.com/swift-trailing-closure-syntax/>
>> what do you think?
>>
>> Best Regards
>>
>> ChenYungui
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>
>
> _______________________________________________
> 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/20160105/840415bb/attachment.html>
More information about the swift-evolution
mailing list