> On Nov 29, 2016, at 2:55 AM, Rick Mann via swift-users 
> <swift-users@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     gpar...@apple.com     Runtime Wrangler


_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to