운영자
https://dart.dev/language/operators#arithmetic-operators
| + | 에 추가 |
| – | 덜다 |
| -표현 | 부정이라고도 하는 단항 빼기(표현식의 역부호) |
| * | 곱하다 |
| / | 나뉘다 |
| ~/ | 나누기, 정수 결과 반환 |
| % | 정수 나눗셈의 나머지 구하기(modulo) |
테스트 연산자 입력
| ~처럼 | Typecast(또한 다음을 나타내는 데 사용됨) 라이브러리 접두사) |
| ~이다 | 객체가 지정된 유형인 경우 참 |
| 이다! | 객체가 지정된 유형이 아닌 경우 참 |
대입 연산자
??= 연산자를 사용하여 할당 대상 변수가 null인 경우에만 할당합니다.
비트 및 똥 연산자
| & | 그리고 |
| | | 또는 |
| ^^ | XOR |
| ~expr | 단항 비트 보수(0은 1이 되고 1은 0이 됨) |
| < | 왼쪽으로 이동 |
| >> | 오른쪽으로 이동 |
| >>> | 부호 없는 오른쪽으로 이동 |
조건식
상태 ? expr1 : epxr2
조건이 참이면 expr1로 평가됩니다. 그렇지 않으면 expr2의 값을 평가하고 반환합니다.
식1 ?? 식2
expr1이 null이면 expr2의 값을 반환합니다. 그렇지 않으면 expr1의 값을 반환합니다.
캐스케이드 표기법
캐스케이드를 사용하면 동일한 개체에 대해 여러 작업을 수행할 수 있습니다. 인스턴스 멤버에 액세스하는 것 외에도 동일한 개체에서 인스턴스 메서드를 호출할 수도 있습니다.
var paint = Paint()
..color = Colors.black
..strokeCap = StrokeCap.round
..strokeWidth = 5.0;
var paint = Paint();
paint.color = Colors.black;
paint.strokeCap = StrokeCap.round;
paint.strokeWidth = 5.0;
캐스케이드가 실행되는 개체가 null일 수 있는 경우 첫 번째 작업에 null-short 캐스케이드(?..)를 사용합니다. ?..로 시작하면 이 null 개체에 대해 계단식 작업이 시도되지 않습니다.
다른 연산자
연산자 이름 의미
| () | 기능 적용 | 함수 호출을 나타냅니다. |
| () | 구독 액세스 | 재정의 가능한 호출을 나타냅니다. () 운영자; 예: 바보목록(1) int 발생 하나 에게 fooList 인덱스의 요소에 액세스하려면 하나 |
| ?() | 조건부 아래 첨자 액세스 | ()와 비슷하지만 왼쪽 피연산자는 null일 수 있습니다. 예: fooList?(1)는 fooList가 null이 아닌 경우(이 경우 표현식이 null로 평가됨) int 1을 fooList에 전달하여 인덱스 1의 요소에 액세스합니다. |
| . | 회원을 위한 액세스 | 표현식의 속성을 나타냅니다. 예: 푸 바 속성 선택 술집 표현에서 푸 |
| ?. | 조건부 회원 액세스 | .와 같지만 왼쪽 피연산자는 null일 수 있습니다. 예를 들어 foo?.bar는 foo가 null이 아닌 경우(foo?.bar의 값이 null인 경우) 표현식 foo에서 속성 bar를 선택합니다. |
| ! | 널 어설션 연산자 | null을 허용하지 않는 기본 형식으로 식을 캐스팅하고 캐스팅이 실패하면 런타임 예외를 throw합니다. 예: 푸!.바 주장 푸 null이 아니며 속성을 선택합니다. 현금 푸 null인 경우 런타임 예외가 발생합니다. |