수색…


내장 연산자

스칼라에는 다음과 같은 기본 제공 연산자 (사전 정의 된 규칙이있는 메서드 / 언어 요소)가 있습니다.

유형 상징
산술 연산자 + - * / % a + b
관계 연산자 == != > < >= <= a > b
논리 연산자 && & || | ! a && b
비트 단위 연산자 & | ^ ~ << >> >>> a & b , ~a , a >>> b
배정 연산자 = += -= *= /= %= <<= >>= &= ^= = = a += b

스칼라 연산자는 Java 에서와 같은 의미를가집니다.

끝나는 방법 참고 : 오른쪽 (우 결합)에 결합하므로와 통화 list.::(value) 로 쓸 수 value :: list 연산자 구문. ( 1 :: 2 :: 3 :: Nil1 :: (2 :: (3 :: Nil)) )

연산자 오버로딩

스칼라에서는 자신 만의 연산자를 정의 할 수 있습니다.

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

위의 정의를 사용하면 다음과 같이 사용할 수 있습니다.

ITTeam + Jack

또는

ITTeam.+(Jack)

단항 연산자를 정의하려면 unary_ 접두사를 unary_ 수 있습니다. 예 : unary_!

class MyBigInt {
   def unary_! = ...
}

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

운영자 우선 순위

범주 운영자 연관성
후위 () [] 왼쪽에서 오른쪽으로
단항 ! ~ 오른쪽에서 왼쪽으로
Multiplicative * / % 왼쪽에서 오른쪽으로
첨가물 + - 왼쪽에서 오른쪽으로
시프트 >> >>> << 왼쪽에서 오른쪽으로
관계형 > >= < <= 왼쪽에서 오른쪽으로
평등 == != 왼쪽에서 오른쪽으로
비트와 & 왼쪽에서 오른쪽으로
비트 단위 xor ^ 왼쪽에서 오른쪽으로
비트 또는 | 왼쪽에서 오른쪽으로
논리적 && 왼쪽에서 오른쪽으로
논리적 또는 || 왼쪽에서 오른쪽으로
할당 = += -= *= /= %= >>= <<= &= ^= | = 오른쪽에서 왼쪽으로
콤마 , 왼쪽에서 오른쪽으로

스칼라로 프로그래밍 하면 연산자의 첫 번째 문자를 기반으로 다음 개요가 제공됩니다. 예 > 운영자의 첫번째 문자는 >>> :

운영자
(다른 모든 특수 문자)
* / %
+ -
:
= !
< >
&
^
|
(모든 문자)
(모든 할당 연산자)

이 규칙에 대한 한 가지 예외는 대입 연산자 (예 : += , *= 등)와 관련이 있습니다. 연산자가 등호 (=)로 끝나고 비교 연산자 <= , >= , == 또는 != 중 하나가 아닌 경우, 연산자의 우선 순위는 단순 할당과 동일합니다. 즉, 다른 운영자보다 낮습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow