-1. The “default: break” is not only not difficult to write, it clearly communicates the programmer’s intent to only handle a subset of the cases. Without it, it is impossible to know whether that was intended, or by accident. Furthermore, the exhaustiveness by default can catch many mistakes, including after an additional case is added to an enum.
Charles > On Oct 3, 2016, at 5:14 AM, Adrian Zubarev via swift-evolution > <[email protected]> wrote: > > I know that there is this note in Commonly Rejected Changes > <https://github.com/apple/swift-evolution/blob/master/commonly_proposed.md>: > > Remove support for default: in switch and just use case _:: default is widely > used, case _ is too magical, and default is widely precedented in many C > family languages. > I really like to use the switch instead of if case for pattern matching, just > because it’s neat block design. I do not want to remove default from switches > because it’s a must have and powerful feature. > > I’d like to know why switches must be exhaustive. > > switch someValue { > > case …: > // Do something > > case …: > // Do something else > > default: > () // useless nop; do nothing when no pattern matched > } > > // VS: > > if case … { > > } else if case … { > > } else if case … { > > } // No need for `else` > Can’t we make default optional, or at least on non-enum values? > > > > > -- > Adrian Zubarev > Sent with Airmail > > _______________________________________________ > swift-evolution mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
