注意:本教學是Scala教學系列的延續。如果您還沒有閱讀過Scala入門指南和Scala中的IF ELSE,請先查看它們。
介紹
一個運算子
是表示需要對一個或多個操作數進行操作的符號或函數。有許多不同類型的運算子,而操作數可以被視為一個變量
。運算子是所有程式語言的基礎。運算子使我們能夠對操作數執行各種操作。運算子通知編譯器執行如數學(算術)、邏輯、賦值等運算,並最終輸出結果。
在Scala以及許多程式語言中使用了不同類型的運算子,以下是它們的類型:
- 關係運算子
- 算術運算子
- 賦值運算子
- 邏輯運算子
- 位元運算子
您將會從理論和程式設計的角度學習上述運算子。
關係運算子
關係運算子主要用於比較兩個或多個變數。如果你已經閱讀了Scala 中的 IF ELSE教程,那麼你會發現你已經在IF ELSE
條件中利用了關係運算子的威力。
這些關係運算子返回一個布林值
,即 True 或 False。
以下是用於變數的關係運算子符號 (來源:Scala 中的運算子):
-
等於(==):
檢查兩個給定變數或操作數是否相等。如果相等,則返回 true,否則返回 false。 -
不等於(!=):
它是等於
運算子的反義詞,或者你可以說是等於
運算子的布林補數。它檢查兩個給定操作數是否相等。如果不相等,則返回 true,否則返回 false。 -
>
大於(>):
它檢查第一個操作數是否比第二個操作數高。如果是,則返回真,否則返回假。 -
小於(<):
它是大於
操作符的相反,因為它檢查第一個操作數是否比第二個操作數小。如果是,則返回真,否則返回假。 -
大於等於(>=):
這個操作符檢查第一個操作數是否大於或等於第二個操作數。如果是,則返回真;否則,返回假。 -
小於等於(<=):
它是大於等於
操作符的相反。它檢查第一個操作數是否小於或等於第二個操作數。如果是,則返回真;否则,返回假。
現在讓我們通過一段代碼來理解關聯運算符。

要運行上面的代碼,你只需要輸入scala relation_op.scala,你应该會看到下面的輸出。

接下來,你將學習關於邏輯運算符
。
邏輯運算符
它們主要用於像IF ELSE
語句或甚至是while
循環中。它們結合兩個或更多的條件,或者甚至是补足原條件的輸出(被考慮的)。(來源:Scala中的運算符)
-
邏輯與:
當兩個條件都滿足時,它返回true。否則,返回false。使用“and”作為&&
運算符的代理。 -
邏輯或:
當一個(或兩個)條件滿足時,它返回true。否则,返回false。使用“or”作為||
運算符的代理。 -
邏輯非運算子:當考慮的條件不滿足時,它返回真。否則,返回假。使用“非”作為!運算子的替代。


算術運算子(數學運算子)
如名稱所示,算術運算子用於在操作數之間進行數學運算。
以下是Scala中常用的算術運算子(來源:Scala中的運算子):
-
加法運算子:將兩個變量/操作數相加。(+)
-
減法運算子:將兩個操作數相減。(-)
-
乘法運算子:將兩個操作數相乘。(×)
-
除法運算子:將第一個操作數除以第二個操作數。(÷)
-
乘方:
回傳操作數的指數(冪)。基本上,當一個操作數被提升到第二操作數的冪(x^y)或(x**y)。 -
取餘數:
當第一操作數除以第二操作數時,剩下的部分或餘數稱為取餘數(%)。
讓我們快速寫一段小程式並分析結果。
在這個例子中,您將使用列表
而不是只定義變數。與變數不同,列表可以持有n
個不同數據類型的值,它們在scala中代表串聯列表並且是不可變的。您將對兩個列表進行算術操作,而不是兩個變數。


賦值運算符
要將值賦予變量,會使用賦值運算子。為了完成此操作,右側操作數被視為一個值,而左側操作數通常是變量,該值將賦予給這個變量。這個值可以有不同的數據類型,如 int
, float
等。變量和值的數據類型應該相同,否則編譯器會報錯。(來源:Scala 中的運算子)
-
簡單賦值:
這個運算子用來將一個值賦予變量 $(=)$。 -
加和賦值:
用於將左側操作數加上右側操作數,並最終賦予左側變量 $(+=)$。 -
減和賦值:
與加和賦值
類似,這用於將左側操作數減去右側操作數,並最終賦予左側變量 $(-=) $。 -
乘積與賦值:
-
除法與賦值:
同理,還有許多其他的賦值運算符。最後,讓我們寫一段程式碼來了解它們如何在程式中工作。


結論
恭喜您完成 Scala 教程。
如果您已經读过前两次的教学,那麼您已經涵蓋了 Scala 的三個不同主題。一個有用的練習將會是把從這三個主題中学到的技能綜合起來,並從頭開始寫一個 Scala 程式。這不僅會增強您的自信,還會讓您在跟進更多進階的 Scala 主題時,生活變得更加輕鬆。
參考資料:
請隨時在下面的评论区提問,如果您有关于這個教程的任何問題。
Source:
https://www.datacamp.com/tutorial/operators-in-scala