다트는 기본적으로 타 프로그래밍 언어와 같은 연산자를 사용한다.
연산자의 종류는
(산술, 할당, 관계, 논리, 비트, 시프트, 타입 검사) 연산자, 조건 표현식, 캐스케이드 표기법이 있다.
기본적인 산술,할당,관계,논리연산은 타 언어와 같으니 PASS
1. 비트와 시프트 연산자
특정 로직을 수행할 떄 보다 빠르게 처리할 수 있으나 모바일 개발을 할떈 거의 쓰지 않는다.
& = AND
| = OR
^ = XOR
~ = NOT
2. 타입 검사 연산자
as = 형 변환
is = 객체가 특정 타입이면 true
is! = 객체가 특정 타입이면 false 아니면 true
예제를 들어보자
(mystoryg/120 참조)
위에 조건에서 이런 조건문이 있다면 결과는 무엇일까
if (employee is Person) {
print('employee is Person');
} else {
print('employee is not Person');
}
employee의 객체는 as로 받았기 때문에 상위 타입인 Person에도 속하기 때문에 true가 된다.
3. 조건 표현식
3.1 삼항 연산자
조건식? 참이면 실행 : 거짓이면 실행
void main(){
int point = 60;
print(point>=60? '합격' : '불합격')
}
당연히 실행결과는 합격이다.
3.2 null 대체 연산자
변수의 값이 null이면?? 뒤에 값 출력, null이 아니면 변수의 값 그대로 출력
void main(){
String username = null;
print(username);
print(username?? "홍길동");
}
결과는
null
홍길동
4. 캐스케이드 표기법 (..)
한 객체로 해당 객체의 속성이나 멤버 함수를 연속으로 호출할 때 쓰이며
매번 객체를 표기하고 호출하는 불필요 과정을 줄여준다.
예를 들어
Employee employee = Employee()
..name = 'kim'
..setAge(24)
..showinfo();
로 해당 객체로 계속 접근할 수 있다.