I very much agree with your concerns about this change in general.
On this specific example, though, I just wanted to point out that there doesn’t
seem to be a good reason to use .forEach here.
for (key, value) in self {
// etc
}
Would work perfectly well and is clearer IMO, still works with destructing,
doesn’t have gotcha problems related to continue/break not doing what you might
expect, etc.
forEach is only really a win when used on the end of a chain of map/filter-like
operations, where for…in would involve bouncing back from right to left.
> On May 24, 2017, at 12:12 PM, Tony Parker via swift-evolution
> <[email protected]> wrote:
>
> Hi everyone,
>
> We received a pull request in swift-corelibs-foundation which is apparently
> in response to a language change for SE-0110.
>
> It turns this perfectly reasonable code:
>
> - self.forEach { (keyItem, valueItem) in
>
> into this:
>
>
> + self.forEach { (arg) in
> + let (keyItem, valueItem) = arg
>
> Is that really the design pattern we want to encourage? What was wrong with
> the previous code?
>
> (https://github.com/apple/swift-corelibs-foundation/pull/995/files
> <https://github.com/apple/swift-corelibs-foundation/pull/995/files>)
>
> - Tony
>
> _______________________________________________
> 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