[swift-evolution] Allow let binding of non-optionals

Guillaume Lessard glessard at tffenterprises.com
Fri Jan 8 12:53:07 CST 2016

> On 7 janv. 2016, at 12:02, Joe Groff via swift-evolution <swift-evolution at swift.org> wrote:
> 'case let' already works like this, by declaring a pattern 'let a' that unconditionally matches anything.

This is an interesting workaround! However, outside of switch statements I don’t think I’ve used a “case let” that made for clear re-reading. Maybe I’m hobbled by switches.

The workaround I’ve used for Russ’s situation is to build a temporary Optional; `case let` hardly helps:

if let x = x, y = Optional(calculate(x, z)) where condition(x, y) { print(x, y) }

if let x = x, case let y = calculate(x, z) where condition(x, y) { print(x, y) }

In any case, I agree with Russ that this variable binding behaviour is an occasional irritant.

Guillaume Lessard

More information about the swift-evolution mailing list