[swift-evolution] [swift-evolution-announce] [Review] SE-0024 "Optional Value Setter `??=`"

James Campbell james at supmenow.com
Tue Feb 16 12:03:50 CST 2016


Much better explanation for it :)

*___________________________________*

*James⎥Head of Awesome*

*james at supmenow.com <james at supmenow.com>⎥supmenow.com <http://supmenow.com>*

*Sup*

*Runway East *

*10 Finsbury Square*

*London*

* EC2A 1AF *

On Tue, Feb 16, 2016 at 4:52 PM, Radosław Pietruszewski <radexpl at gmail.com>
wrote:

> This is very much on purpose. In more weakly typed languages, nil is
> treated as a “falsy” value, and so you can use || to deal with it. Swift is
> very strongly typed and only booleans can be used in boolean expressions,
> not boolean-like values. (Remember how you used to be able to do `if
> someOptional`, but it was changed so that you have to say `if someOptional
> != nil`). When we talk about optionals, we use ? symbol to convey that
> something is optional-related. And so there’s ??.
>
> — Radek
>
> On 16 Feb 2016, at 15:18, James Campbell via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> Granted it may be confusing since other languages use the Or operator
> which reads better.
>
> X ||= y
>
> However I would argue that this operator has no choice but to use ??=
> Since it is a mirror for the ?? Operation.
>
> Perhaps it would be better for the language if ?? Was actually || but this
> would be a small but big change and would belong in another proposal.
>
> Sent from Supmenow.com <http://supmenow.com/>
>
>
>
>
> On Tue, Feb 16, 2016 at 6:14 AM -0800, "Ross O'Brien via swift-evolution"
> <swift-evolution at swift.org> wrote:
>
> "y is assigned to x if x is nil" *is* exactly what "x ??= y" means. If x
>> is nil, x is assigned the value of y; if x is not nil, it doesn't matter
>> what y is.
>>
>> This is exactly consistent with the boolean operator ||= ; "x ||= y"
>> means "y is assigned to x if x is false" - if x is false, x is assigned the
>> value of y; if x is true, it doesn't matter what y is.)
>>
>> Why do you think it means the opposite?
>>
>> On Tue, Feb 16, 2016 at 1:24 PM, David Sweeris via swift-evolution <
>> swift-evolution at swift.org> wrote:
>>
>>> -1, because in my mind, "x ??= y" kinda looks like "y is assigned to x
>>> iff y isn't nil", or, if you associate the ?? part with the lhs, "y is
>>> assigned to x if x is nil", neither of which is what the proposed operator
>>> means. In fact, the 2nd case is the *opposite* of what ??= means in this
>>> proposal.
>>>
>>> To be clear, it's the syntax that I'm opposed to, not the concept.
>>>
>>> - Dave Sweeris
>>>
>>> On Feb 12, 2016, at 23:15, Douglas Gregor <dgregor at apple.com> wrote:
>>>
>>> Hello Swift community,
>>>
>>> The review of SE-0024 "Optional Value Setter `??=`" begins now and runs
>>> through February 18, 2016. The proposal is available here:
>>>
>>>
>>> https://github.com/apple/swift-evolution/blob/master/proposals/0024-optional-value-setter.md
>>>
>>> Reviews are an important part of the Swift evolution process. All
>>> reviews should be sent to the swift-evolution mailing list at
>>>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>>
>>> or, if you would like to keep your feedback private, directly to the
>>> review manager. When replying, please try to keep the proposal link at the
>>> top of the message:
>>>
>>> Proposal link:
>>>
>>>
>>> https://github.com/apple/swift-evolution/blob/master/proposals/0024-optional-value-setter.md
>>>
>>> Reply text
>>>
>>> Other replies
>>>
>>> <https://github.com/apple/swift-evolution#what-goes-into-a-review-1>What
>>> goes into a review?
>>>
>>> The goal of the review process is to improve the proposal under review
>>> through constructive criticism and, eventually, determine the direction of
>>> Swift. When writing your review, here are some questions you might want to
>>> answer in your review:
>>>
>>>    - What is your evaluation of the proposal?
>>>    - Is the problem being addressed significant enough to warrant a
>>>    change to Swift?
>>>    - Does this proposal fit well with the feel and direction of Swift?
>>>    - If you have used other languages or libraries with a similar
>>>    feature, how do you feel that this proposal compares to those?
>>>    - How much effort did you put into your review? A glance, a quick
>>>    reading, or an in-depth study?
>>>
>>> More information about the Swift evolution process is available at
>>>
>>> https://github.com/apple/swift-evolution/blob/master/process.md
>>>
>>> Thank you,
>>>
>>> Doug Gregor
>>>
>>> Review Manager
>>>
>>> _______________________________________________
>>> swift-evolution-announce mailing list
>>> swift-evolution-announce at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution-announce
>>>
>>>
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>>
>>>
>> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160216/883eb5c2/attachment.html>


More information about the swift-evolution mailing list