Dart에서는 다양한 연산자를 제공하여 변수와 값에 대해 다양한 작업을 수행할 수 있습니다.
연산자는 크게 다음과 같은 범주로 나눌 수 있습니다
1. 산술 연산자
2. 증감 연산자
3. 관계 연산자
4. 논리 연산자
5. 비트 연산자
6. 할당 연산자
7. 조건 연산자
8. 형 변환 연산자
9. 기타 연산자
1. 산술 연산자
산술 연산자는 기본적인 산술 계산을 수행합니다.
• + (덧셈)
• - (뺄셈)
• * (곱셈)
• / (나눗셈)
• ~/ (몫 연산)
• % (나머지 연산)
void main() {
int a = 10;
int b = 3;
print(a + b); // 13
print(a - b); // 7
print(a * b); // 30
print(a / b); // 3.3333333333333335
print(a ~/ b); // 3
print(a % b); // 1
}
2. 증감 연산자
증감 연산자는 변수의 값을 증가시키거나 감소시킵니다.
• ++a (전위 증가)
• a++ (후위 증가)
• --a (전위 감소)
• a-- (후위 감소)
void main() {
int a = 10;
print(++a); // 11
print(a++); // 11
print(a); // 12
print(--a); // 11
print(a--); // 11
print(a); // 10
}
3. 관계 연산자
관계 연산자는 두 피연산자 간의 관계를 비교합니다. 결과는 boolean 값입니다.
• == (같다)
• != (같지 않다)
• > (크다)
• < (작다)
• >= (크거나 같다)
• <= (작거나 같다)
void main() {
int a = 10;
int b = 3;
print(a == b); // false
print(a != b); // true
print(a > b); // true
print(a < b); // false
print(a >= b); // true
print(a <= b); // false
}
4. 논리 연산자
논리 연산자는 boolean 값에 대해 논리 연산을 수행합니다.
• && (그리고)
• || (또는)
• ! (부정)
void main() {
bool a = true;
bool b = false;
print(a && b); // false
print(a || b); // true
print(!a); // false
print(!b); // true
}
5. 비트 연산자
비트 연산자는 비트 수준에서 연산을 수행합니다.
• & (AND)
• | (OR)
• ^ (XOR)
• ~ (NOT)
• << (왼쪽 시프트)
• >> (오른쪽 시프트)
void main() {
int a = 10; // 1010
int b = 3; // 0011
print(a & b); // 2 (0010)
print(a | b); // 11 (1011)
print(a ^ b); // 9 (1001)
print(~a); // -11 (2의 보수)
print(a << 1); // 20 (10100)
print(a >> 1); // 5 (0101)
}
6. 할당 연산자
할당 연산자는 변수에 값을 할당하거나 특정 연산을 수행한 후 할당합니다.
• = (할당)
• += (더한 후 할당)
• -= (뺀 후 할당)
• *= (곱한 후 할당)
• /= (나눈 후 할당)
• ~/= (몫을 구한 후 할당)
• %= (나머지를 구한 후 할당)
void main() {
int a = 10;
int b = 3;
a += b; // a = a + b
print(a); // 13
a -= b; // a = a - b
print(a); // 10
a *= b; // a = a * b
print(a); // 30
a /= b; // a = a / b
print(a); // 10.0
a ~/= b; // a = a ~/ b
print(a); // 3
a %= b; // a = a % b
print(a); // 0
}
7. 조건 연산자
조건 연산자는 특정 조건에 따라 값을 선택합니다.
• condition ? expr1 : expr2 (삼항 연산자)
• ?? (널 병합 연산자)
void main() {
int a = 10;
int b = 3;
var result = a > b ? 'a가 크다' : 'b가 크다';
print(result); // a가 크다
String? name;
String userName = name ?? 'Guest';
print(userName); // Guest
}
8. 형 변환 연산자
형 변환 연산자는 객체의 타입을 변환하거나 확인합니다.
• as (형 변환)
• is (타입 검사)
• is! (타입 검사 - 부정)
void main() {
dynamic a = 10;
// 타입 검사
if (a is int) {
print('a는 int 타입입니다.');
}
// 타입 검사 - 부정
if (a is! String) {
print('a는 String 타입이 아닙니다.');
}
// 형 변환
var b = a as int;
print(b); // 10
}
9. 기타 연산자
• [] (리스트 및 맵 접근 연산자)
• . (멤버 접근 연산자)
• ?. (널 안전 멤버 접근 연산자)
• .. (계단식 표기법)
void main() {
List<int> numbers = [1, 2, 3];
Map<String, int> ages = {'John': 25, 'Doe': 30};
// 리스트 및 맵 접근
print(numbers[0]); // 1
print(ages['John']); // 25
// 멤버 접근
String text = 'Hello';
print(text.length); // 5
// 널 안전 멤버 접근
String? nullableText;
print(nullableText?.length); // null
// 계단식 표기법
var buffer = StringBuffer()
..write('Hello')
..write(' ')
..write('World');
print(buffer.toString()); // Hello World
}
결론
Dart 연산자는 다양한 작업을 수행할 수 있도록 돕는 중요한 도구입니다. 연산자의 올바른 사용법을 익히면 코드의 효율성과 가독성을 높일 수 있습니다. 이 문서에서 설명한 다양한 연산자를 잘 활용하여 더욱 효과적인 Dart 프로그래밍을 수행할 수 있습니다.
참고 문서
'프론트엔드 > Flutter' 카테고리의 다른 글
dart 조건문 정리 (0) | 2024.07.21 |
---|---|
dart collection 설명 및 예시 (0) | 2024.07.21 |
Dart에서 변수 초기화 null Safety 와 late 키워드 (0) | 2024.07.18 |
dart 3 언어 주요 변경 사항 및 새로운 기능 (0) | 2024.07.18 |
dart 언어 개요 - dart란 (0) | 2024.07.18 |