If-Let Assignment Operator
Weston Hanners defines a custom Swift operator (via This Week in Swift):
infix operator ?= { associativity right precedence 90 } func ?=<T>(inout left: T, right: T?) { if let value = right { left = value } } func ?=<T>(inout left: T?, right: T?) { if let value = right { left = value } }
So that code like:
if let value = someOptionalValue as? String { self.value = value }
Can be written as:
self.value ?= someOptionalValue as? String
I like the brevity, but often I care that there was no value, or perhaps want to report why there wasn’t one (e.g. which key was missing). So I kind of see this as a way to make the compiler happy, which is not necessarily the same thing as properly handling the unexpected situation. I might prefer a pattern where the helper extracts the value from the containing object, rather than checking it after the fact.