본문 바로가기
다트(Dart) 언어 강좌

다트의 연산자와 표현식을 알아보자

by everythingdev 2024. 7. 23.
반응형

다트의 연산자와 표현식을 알아보자

  • 플러터를 시작하기 전 다트(Dart) 언어의 개념에 대해 정리를 해보고자 합니다.
  • 다트(Dart) 언어 개념 정리 포스팅 후 플러터(Flutter) 개념 정리로 넘어갈 예정입니다.
  • 플러터(Flutter) 개념 정리 후 실습이 시작 된다고 보시면 될 것 같습니다.

소개

  • 다트(Dart)는 구글이 개발한 프로그래밍 언어로, 특히 Flutter 프레임워크와 함께 사용되어 모바일 및 웹 애플리케이션 개발에 널리 활용되고 있습니다.
  • 이번 포스팅에서는 다트 언어의 핵심 요소인 연산자와 표현식에 대해 자세히 알아보겠습니다.

1. 산술 연산자

다트에서는 기본적인 수학 연산을 수행하기 위한 다양한 산술 연산자를 제공합니다.

  • + : 덧셈
  • - : 뺄셈
  • * : 곱셈
  • / : 나눗셈 (결과는 double 타입)
  • ~/ : 정수 나눗셈 (결과는 int 타입)
  • % : 나머지

예시:

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. 증감 연산자

다트는 변수의 값을 1씩 증가시키거나 감소시키는 증감 연산자를 제공합니다.

  • ++ : 증가
  • -- : 감소

이 연산자들은 전위(prefix) 또는 후위(postfix) 형태로 사용할 수 있습니다.

  • 예시:
int x = 5;
print(x++); // 출력: 5 (x는 6이 됨)
print(++x); // 출력: 7
print(x--); // 출력: 7 (x는 6이 됨)
print(--x); // 출력: 5

3. 할당 연산자

다트에서는 변수에 값을 할당하기 위한 다양한 할당 연산자를 제공합니다.

  • = : 기본 할당
  • +=, -=, *=, /=, %= : 복합 할당
  • 예시:
int a = 10;
a += 5; // a = a + 5와 동일
print(a); // 출력: 15

a *= 2; // a = a * 2와 동일
print(a); // 출력: 30

4. 비교 연산자

다트는 두 값을 비교하기 위한 비교 연산자를 제공합니다.

  • == : 같음
  • != : 다름
  • > : 크다
  • < : 작다
  • >= : 크거나 같다
  • <= : 작거나 같다
  • 예시:
int a = 5;
int b = 7;
print(a == b); // 출력: false
print(a != b); // 출력: true
print(a > b);  // 출력: false
print(a < b);  // 출력: true
print(a >= 5); // 출력: true
print(b <= 7); // 출력: true

5. 논리 연산자

다트는 불리언 값을 조작하기 위한 논리 연산자를 제공합니다.

  • && : AND (그리고)
  • || : OR (또는)
  • ! : NOT (부정)
  • 예시:
bool x = true;
bool y = false;
print(x && y); // 출력: false
print(x || y); // 출력: true
print(!x);     // 출력: false

6. 비트 연산자

다트는 비트 수준의 연산을 수행하기 위한 비트 연산자를 제공합니다.

  • & : 비트 AND
  • | : 비트 OR
  • ^ : 비트 XOR
  • ~ : 비트 NOT
  • << : 왼쪽 시프트
  • >> : 오른쪽 시프트
  • 예시:
int a = 5;  // 이진수: 0101
int b = 3;  // 이진수: 0011
print(a & b); // 출력: 1 (0001)
print(a | b); // 출력: 7 (0111)
print(a ^ b); // 출력: 6 (0110)
print(~a);    // 출력: -6
print(a << 1);// 출력: 10 (1010)
print(a >> 1);// 출력: 2 (0010)

7. 조건 표현식

다트는 간단한 조건문을 표현하기 위한 두 가지 특별한 연산자를 제공합니다.

7.1 조건 연산자 (삼항 연산자)

  • 조건 ? 표현식1 : 표현식2

조건이 참이면 표현식1을, 거짓이면 표현식2를 반환합니다.

  • 예시
int a = 10;
int b = 5;
int max = a > b ? a : b;
print(max); // 출력: 10

7.2 null 조건 연산자

  • ??

왼쪽 피연산자가 null이 아니면 그 값을, null이면 오른쪽 피연산자를 반환합니다.

  • 예시:
String? name;
String displayName = name ?? 'Guest';
print(displayName); // 출력: Guest

name = 'John';
displayName = name ?? 'Guest';
print(displayName); // 출력: John

8. 타입 테스트 연산자

다트는 객체의 타입을 확인하기 위한 연산자를 제공합니다.

  • is : 객체가 특정 타입인 경우 true 반환
  • is! : 객체가 특정 타입이 아닌 경우 true 반환
  • 예시:
var x = 5;
print(x is int);    // 출력: true
print(x is! String);// 출력: true

9. 캐스케이드 표기법

다트는 동일한 객체에 대해 연속적인 작업을 수행할 수 있는 캐스케이드 표기법(..)을 제공합니다.

  • 예시:
class Person {
  String name = '';
  int age = 0;
  void introduce() {
    print('My name is $name and I am $age years old.');
  }
}

void main() {
  Person()
    ..name = 'John'
    ..age = 30
    ..introduce();
  // 출력: My name is John and I am 30 years old.
}

10. 연산자 우선순위

다트에서 연산자의 우선순위는 일반적인 수학적 규칙을 따릅니다. 괄호를 사용하여 연산 순서를 명시적으로 지정할 수 있습니다.

  • 예시:
int result = 2 + 3 * 4;
print(result); // 출력: 14

result = (2 + 3) * 4;
print(result); // 출력: 20

결론

  • 다트 언어의 연산자와 표현식은 프로그래밍의 핵심 요소입니다. 이들을 효과적으로 사용하면 코드를 더 간결하고 읽기 쉽게 만들 수 있습니다. 또한, 다트의 고유한 기능인 null 안전성과 캐스케이드 표기법은 코드의 안정성과 가독성을 크게 향상시킵니다.
  • 다트 언어를 배우고 사용하면서 이러한 연산자와 표현식을 실제 프로젝트에 적용해 보세요. 실제 사용 경험을 통해 더 깊이 있는 이해와 숙달을 얻을 수 있습니다. 다트와 Flutter를 이용한 개발은 모바일 및 웹 애플리케이션 시장에서 점점 더 중요해지고 있으므로, 이러한 기본적인 개념을 잘 이해하는 것이 향후 커리어 발전에도 큰 도움이 될 것입니다.

맺음말

  • 이번 포스팅에서는 다트의 연산자와 표현식에 대해 알아보았습니다.
  • 다음 포스팅에서는 다트의 제어문에 대해 알아보고자 합니다.
반응형