[swift-evolution] Optional Assignment Operator

Joe Groff jgroff at apple.com
Wed Jan 25 10:56:23 CST 2017


> On Jan 25, 2017, at 8:40 AM, Nichi Shin via swift-evolution <swift-evolution at swift.org> wrote:
> 
> I’d like to propose a new operator for optional assignment in Swift.
> 
> The idea is that by using this operator (e.g. by doing a ?= b), the optional on the right would be assigned to the variable on the left only when it has something to assign (i.e. when it's not nil).

`a? = b` already does this. Maybe we need a fixit to make that more apparent, though.

-Joe

> 
> The implementation could be something as follows:
> 
> /// Optional Assignment Operator
> infix operator ?=: AssignmentPrecedence
> 
> func ?=<T>(left: inout T, right: T?) {
>     if right != nil {
>         left = right!
>     }
> }
> 
> func ?=<T>(left: inout T?, right: T?) {
>     if right != nil {
>         left = right
>     }
> }
> 
> I hope you will consider adding this on a future release of this great programming language.
> 
> Kind regards,
> N. S.
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list