[swift-evolution] Proposal: Replace ?? by an (optional) argument to ?
Austin Zheng
austinzheng at gmail.com
Mon Jan 25 20:59:05 CST 2016
In addition to the conflict in meaning, the original proposal won't work as-is because only operators can start with a '?'. An 'ifNil' function taking an autoclosure argument would be expressible within the language grammar without requiring special-case exceptions.
That being said, my opinion is that changes that break existing code should come with commensurate benefit (as with the C for loop discussion). I don't think one exists, although if someone wants to make an argument in favor of it I would be happy to reconsider.
WRT to ?? not being well-known, given that the concept it deals with (non-optional fallback expression to an expression of optional type) is not really expressible in most mainstream languages, I would consider it okay.
Austin
> On Jan 25, 2016, at 6:52 PM, Rob Mayoff via swift-evolution <swift-evolution at swift.org> wrote:
>
> `x?(false)` already has a meaning. If `x` is of type `Optional<(Bool) -> ()>`, then `x?(false)` means “if x is None, do nothing; if x is Some(f), call f(false)”.
>
> I don't think the end is "the most important position", and I don't think the default value is necessarily "the least important part of the expression".
>
> I like the existing ?? operator more than this idea.
>
> _______________________________________________
> 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