Dart 에서의 연산자와 표현식

Dart는 다양한 연산자(operator)와 표현식(expression)을 제공하여 개발자가 보다 간결하고 직관적인 코드를 작성할 수 있도록 합니다. 이번 글에서는 산술 연산자, 비교 연산자, 논리 연산자, 비트 연산자, 할당 연산자, 조건 연산자 및 기타 특수 연산자에 대해 살펴보겠습니다.


1. 산술 연산자 (Arithmetic Operators)

산술 연산자는 기본적인 수학 연산을 수행할 때 사용됩니다.

연산자설명예제
+덧셈var sum = 10 + 5; // 15
-뺄셈var diff = 10 - 5; // 5
*곱셈var product = 10 * 5; // 50
/나눗셈 (실수 반환)var div = 10 / 3; // 3.333...
~/나눗셈 (정수 반환)var divInt = 10 ~/ 3; // 3
%나머지 연산var remainder = 10 % 3; // 1

2. 비교 연산자 (Comparison Operators)

비교 연산자는 두 값을 비교할 때 사용되며, 결과는 true 또는 false입니다.

연산자설명예제
==같음print(10 == 10); // true
!=다름print(10 != 5); // true
>초과print(10 > 5); // true
<미만print(10 < 5); // false
>=이상print(10 >= 10); // true
<=이하print(10 <= 5); // false

3. 논리 연산자 (Logical Operators)

논리 연산자는 주어진 조건을 조합하여 논리적인 판단을 할 때 사용됩니다.

연산자설명예제
&&논리 ANDprint(true && false); // false
||논리 ORprint(true || false); // true
!논리 NOTprint(!true); // false

4. 비트 연산자 (Bitwise Operators)

비트 연산자는 이진수 형태로 값을 조작할 때 사용됩니다.

연산자설명예제 (2진수 연산)
&비트 ANDprint(5 & 3); // 1 (0101 & 0011 = 0001)
|비트 ORprint(5 | 3); // 7 (0101 | 0011 = 0111)
^비트 XORprint(5 ^ 3); // 6 (0101 ^ 0011 = 0110)
~비트 NOTprint(~5); // -6 (~0101 = 1010, 2의 보수)
<<왼쪽 시프트print(5 << 1); // 10 (0101 << 1 = 1010)
>>오른쪽 시프트print(5 >> 1); // 2 (0101 >> 1 = 0010)

5. 할당 연산자 (Assignment Operators)

할당 연산자는 변수에 값을 저장하거나, 연산 후 값을 갱신할 때 사용됩니다.

연산자설명예제
=값 할당var a = 10;
+=덧셈 후 할당a += 5; // a = a + 5
-=뺄셈 후 할당a -= 3; // a = a - 3
*=곱셈 후 할당a *= 2; // a = a * 2
/=나눗셈 후 할당a /= 2; // a = a / 2
~/=정수 나눗셈 후 할당a ~/= 2; // a = a ~/ 2

6. 조건 연산자 (Conditional Operators)

조건 연산자는 특정 조건을 만족할 때 값을 반환하는데 사용됩니다.

연산자설명예제
? :삼항 연산자var result = (10 > 5) ? "크다" : "작다";
??null 대체 연산자var name = null; print(name ?? "Unknown"); // Unknown
??=null 할당 연산자var text; text ??= "Default"; print(text); // Default

Dart의 연산자는 코드를 더욱 간결하고 직관적으로 작성할 수 있도록 돕습니다.

  • 산술 연산자: +, -, *, /, ~/, %
  • 비교 연산자: ==, !=, >, <, >=, <=
  • 논리 연산자: &&, ||, !
  • 비트 연산자: &, |, ^, ~, <<, >>
  • 할당 연산자: =, +=, -=, *=, /=, ~/=
  • 조건 연산자: ? :, ??, ??=

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다