[swift-users] Changing precedence of / operator for my protocol?

Howard Lovatt howard.lovatt at gmail.com
Tue Nov 29 17:22:27 CST 2016


Why not define some other symbol so that you can get the precedence you
want?

  -- Howard.

On 30 November 2016 at 09:28, Greg Parker via swift-users <
swift-users at swift.org> wrote:

>
> > On Nov 29, 2016, at 2:55 AM, Rick Mann via swift-users <
> swift-users at swift.org> wrote:
> >
> > Working on dimensional analysis, I have some proof-of-concept code that
> seems to be working:
> >
> >    let n1 = kilogram * meter / second * second
> >    ([(kg⋅m) / s]⋅s)
> >
> >     let n2 = kilogram * meter / (second * second)
> >    [(kg⋅m) / (s⋅s)]
> >
> > Note: () around unit products, [] around unit quotients.
> >
> > I'd like to adjust the precedence of operator * for my Unit protocol to
> be higher than /. Is that possible? It wasn't at all clear to me how to do
> that in Swift 3, or if can even be done at all.
>
> You can't. A Swift operator's precedence is the same for all types that
> implement that operator. Operators * and / cannot use the same precedence
> on Int but different precedence on Unit.
>
> You could try to change the precedence of * and / globally - they're
> defined like any other operator in stdlib/public/core/Policy.swift - but
> you'll break lots of other code that way.
>
>
> --
> Greg Parker     gparker at apple.com     Runtime Wrangler
>
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20161130/4f15f98a/attachment.html>


More information about the swift-users mailing list