- Learning Scala Programming
- Vikash Sharma
- 256字
- 2021-06-30 19:07:52
Operator precedence
Operations such as 2 + 3 * 4 / 2 - 1 can give different results if there's no rule for evaluation of these. Hence we have some precedence-based rules for these. We're going to talk about it in this part:
scala> 2 + 3 * 4 / 2 - 1
res15: Int = 7
For reference purposes, we have the preceding expression. The evaluation gives back the result 7. How?
The expression (2 + ((3 * 4) / 2))) - 1 is evaluated in the following steps:
- (2 + (12 / 2)) - 1
- (2 + 6) - 1
- 8 - 1
- 7
It's based on operator precedence. That's in the following order:

As shown in the preceding figure, Scala operator expressions are evaluated based on the precedence shown. As per the figure, *, /, and % are of top priority, then comes + and -.
Other operators also follow the same precedence as shown. If operators of the same precedence level appear together, the operands are evaluated from left to right. It means that the expression 1 + 2 + 3 * 3 * 4 - 1 will result in 38:
scala> 1 + 2 + 3 * 3 * 4 - 1
res16: Int = 38
The expression (1 + 2) + ((3 * 3) * 4) - 1 will be evaluated in the following steps:
- 1 + 2 + 9 * 4 - 1
- 1 + 2 + 36 - 1
- 3 + 36 - 1
- 39 - 1
- 38
This gives clarity of evaluation of expressions in Scala.
- JavaScript前端開發(fā)模塊化教程
- CMDB分步構(gòu)建指南
- Instant Typeahead.js
- Instant QlikView 11 Application Development
- PHP+MySQL+Dreamweaver動態(tài)網(wǎng)站開發(fā)實例教程
- Linux:Embedded Development
- PySpark Cookbook
- Learning Concurrent Programming in Scala
- Getting Started with Eclipse Juno
- Scratch3.0趣味編程動手玩:比賽訓(xùn)練營
- Vue.js 2 Web Development Projects
- 零基礎(chǔ)學(xué)C語言(升級版)
- Python Web自動化測試設(shè)計與實現(xiàn)
- Python預(yù)測分析實戰(zhàn)
- 區(qū)塊鏈:技術(shù)與場景