[swift-evolution] [pitch] replace (if/guard) case = with ~=
Erica Sadun
erica at ericasadun.com
Mon Oct 3 20:31:43 CDT 2016
Resolved: `if case 1...10 = myNumber { ... }` is an abomination.
It confuses inexperience developers. At least those few who are
aware of its existence. Using the assignment operator for pattern
matching adds insult to injury.
I far prefer
`if case .failure(let error) ~= result { ... } `
to
`if case .failure(let error) = result {...}`
Though worthy, this isn't a popular pattern. A highly unscientific survey of
gist reveal:
* Gists using "if case": 94
* Gists that could use "if let" instead of "if case": Approximately 94-ish
* Gists using "guard case" (with significant overlap with "if case"): 54
* Gists that could use "guard let" or "guard x != nil" or "guard x == .enumeration" instead: About 54-ish
* Standard library: 1 use of "guard case", 5 uses of "if case".
Note:
* I love `guard case`/`if case` for `Result` enumerations
* I love`for case let x? in [optionals]`.
I don't expect changing `=` to `~=` would make a huge difference in adoption
but it would satisfy my inner code critic. Changing it would be breaking
but as far as I can tell, it wouldn't really break *that* *much* *code*
-- E
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20161003/b8f736d6/attachment.html>
More information about the swift-evolution
mailing list