[swift-evolution] Should we incorporate bunches of new operators / micro-syntactic sugar?

Kelvin Ma kelvin13ma at gmail.com
Thu Dec 21 13:16:59 CST 2017


possibly off-topic but what i would really find useful is some way of
expressing guard/if assignment instead of initialization so that

        let geomSource:UnsafeMutableBufferPointer<CChar>?
        if let geometryFile:String = geometryFile
        {
            guard let _geomSource:UnsafeMutableBufferPointer<CChar> =
                Shader.openTextFile(Shader.posixPath(geometryFile))
            else
            {
                return nil
            }

            geomSource = _geomSource
        }

could be rewritten as

        let geomSource:UnsafeMutableBufferPointer<CChar>?
        if let geometryFile:String = geometryFile
        {
            guard geomSource:UnsafeMutableBufferPointer<CChar> =
                Shader.openTextFile(Shader.posixPath(geometryFile))
            else
            {
                return nil
            }
        }

On Thu, Dec 21, 2017 at 1:00 PM, Stephen Celis via swift-evolution <
swift-evolution at swift.org> wrote:

> Ah, sorry, I misread! For readability I think I'd still favor something
> like:
>
>     if let b = b {
>       dict[a] = b
>     }
>
> And I think some the arguments made in #0024 may still apply here, though
> feel free to discuss!
>
> Stephen
>
> On Dec 21, 2017, at 1:37 PM, Benoit Pereira da silva <bpds at me.com> wrote:
>
> Stephen,
>
> You are right the proposal #0024 is very close.
> But in fact the logic is inverted.
>
> When using «=? » the right item is optional.
> a =? b assigns « b »  to « a »  only if « b »  is defined.
> So if an optional is defined =? will not erase its value.
>
> But my real questions was…
> Do you have such operators that you really use very often?
> Should we incorporate bunches of new operators / micro-syntactic sugar?
> Is swift evolution the good place to discuss such question?
>
> I don’t want to pollute your mail boxes.
>
> Best regards,
>
> B
>
> Le 21 déc. 2017 à 19:12, Stephen Celis <stephen.celis at gmail.com> a écrit :
>
> Such an operator was proposed here: https://github.com/
> apple/swift-evolution/blob/60a8980a66a0a1341871ec323797c5
> 547d0e0925/proposals/0024-optional-value-setter.md
>
> It was ultimately rejected: https://lists.swift.
> org/pipermail/swift-evolution-announce/2016-February/000043.html
>
> Stephen
>
> On Dec 21, 2017, at 11:44 AM, Benoit Pereira da silva via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> Dear all,
>
> That’s not ambitious but i think worth be explored.
>
> What do you think for example of this Infix operator?
> « =? »  allows to express optional assignments  in a very concise way.
>
>
> // The `=? operator allows simplify optional assignements :
> //  `a = b ?? a` can be written : `a =? b`
> infix operator =?: AssignmentPrecedence
>
> public func =?<T> ( left:inout T?, right: T? ){
>     left = right ?? left
> }
>
> public func =?<T> ( left:inout T, right: T? ){
>     left = right ?? left
> }
>
>
> Do you have such operators that you really use very often?
>
>
> *Benoit Pereira da Silva*
> Ultra Mobile Developer & Movement Activist
> Développeur Ultra Mobile & Militant du mouvement
> https://pereira-da-silva.com
>
> <bannerp.jpg>
>
>
>
> ✄ --------------------------------
> This e-mail is confidential. Distribution, copy, publication or use of
> this information for any purpose is prohibited without agreement of the
> sender.
> Ce message est confidentiel. Toute distribution, copie, publication ou
> usage des informations contenues dans ce message sont interdits sans
> agrément préalable de l'expéditeur.
>
>
>
> _______________________________________________
> 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/20171221/462b971c/attachment.html>


More information about the swift-evolution mailing list