演算子

Scalaの「演算子」は、他の多くのプログラミング言語と同様に、数値や変数に対する操作を行うために使用されます。ただし、Scalaでは演算子は**すべてメソッド呼び出しの糖衣構文(シンタックスシュガー)**として定義されている点が大きな特徴です。つまり、演算子も実際にはメソッドです。


1. 算術演算子(Arithmetic Operators)

基本的な数値計算に使用されます。

演算子 説明 使用例
+ 加算 1 + 23
- 減算 5 - 32
* 乗算 4 * 28
/ 除算 10 / 25
% 剰余(余り) 7 % 31

例:

scala
val a = 10 val b = 3 val result = a % b // resultは1

2. 比較演算子(Relational / Comparison Operators)

値を比較して、真理値(Boolean)を返します。

演算子 説明 使用例
== 等しい a == b
!= 等しくない a != b
> より大きい a > b
< より小さい a < b
>= 以上 a >= b
<= 以下 a <= b

ScalaではJavaと違い、==値の比較(equalsを意味します。eqne参照の比較です。


3. 論理演算子(Logical Operators)

論理値(Boolean)の操作に使われます。

演算子 説明 使用例
&& AND true && false
` `
! NOT !truefalse

4. 代入演算子(Assignment Operators)

変数に値を代入する、または変更するために使用されます。

演算子 説明 使用例
= 代入 val x = 10
+= 加算して代入 x += 1
-= 減算して代入 x -= 2
*= 乗算して代入 x *= 3
/= 除算して代入 x /= 2

5. ビット演算子(Bitwise Operators)

整数型に対してビットレベルで操作を行います。

演算子 説明 使用例
& 論理積(AND) 5 & 31
` ` 論理和(OR)
^ 排他的論理和(XOR) 5 ^ 36
~ ビット反転 ~5-6
<< 左シフト 1 << 24
>> 右シフト 4 >> 12

6. 演算子の特別な性質(すべてはメソッド)

Scalaでは演算子はメソッドの一種として扱われるため、以下のような記述も可能です:

scala
val sum = 1.+(2) // 1 + 2 と同じ意味

自作クラスに対しても、演算子としてメソッドを定義することで、演算子のオーバーロードが可能です。


まとめ

  • Scalaでは演算子もメソッドとして定義されている。

  • Javaに似た構文を持ちながら、より柔軟に演算子の挙動を定義できる。

  • 演算子のオーバーロードや連鎖記述が可能。

生成日:2025/05/04