サーチ…


組み込み演算子

Scalaには次のビルトイン演算子があります(定義済みの優先順位ルールを持つmethods / language要素)。

タイプシンボル
算術演算子 + - * / % a + b
関係演算子 == != > < >= <= a > b
論理演算子 && & || | ! a && b
ビットワイズ演算子 & | ^ ~ << >> >>> a & b~aa >>> b
代入演算子 = += -= *= /= %= <<= >>= &= ^= = = a += b

Scala演算子はJavaと同じ意味を持ちます

:最後のメソッドは:右(および右結合)にバインドします。したがって、 value :: list . value :: list list.::(value)使用した呼び出しは、演算子構文を使用してvalue :: listとして記述できます。 ( 1 :: 2 :: 3 :: Nil1 :: (2 :: (3 :: Nil))と同じです)

演算子のオーバーロード

Scalaでは、あなた自身の演算子を定義することができます:

class Team {
   def +(member: Person) = ...
}

上記の定義を使用すると、次のように使用できます。

ITTeam + Jack

または

ITTeam.+(Jack)

単項演算子を定義するには、その接頭辞にunary_付けることができます。たとえばunary_!

class MyBigInt {
   def unary_! = ...
}

var a: MyBigInt = new MyBigInt
var b = !a

オペレータの優先順位

カテゴリーオペレーター関連性
Postfix () [] 左から右へ
単項 ! ~ 右から左へ
乗法 * / % 左から右へ
添加剤 + - 左から右へ
シフト >> >>> << 左から右へ
リレーショナル > >= < <= 左から右へ
平等 == != 左から右へ
ビット単位および & 左から右へ
ビット単位のxor ^ 左から右へ
ビット単位または | 左から右へ
論理的および && 左から右へ
論理または || 左から右へ
割り当て = += -= *= /= %= >>= <<= &= ^= = = 右から左へ
コンマ , 左から右へ

Scalaでプログラミングすると、演算子の最初の文字に基づいて以下のようなアウトラインが得られます。 Eg >は演算子>>>最初の文字です:

オペレーター
(他のすべての特殊文字)
* / %
+ -
:
= !
< >
&
^
|
(すべての文字)
(すべての代入演算子)

演算子が等号(=)で終わり、比較演算子<=>===または!=いずれかでない場合、このルールの例外は代入演算子+=*=演算子の優先順位は簡単な割り当てと同じです。換言すれば、他のオペレータのものより低い。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow