개발이야기

Dart 다트 입문기 다트 언어 기본 알아보기 [3] -연산자

나는안울어 2024. 11. 2. 14:46

이번에 공부할 부분은 연산자

 

뭐 연산자 부분은 거의 모든 언어가 비슷하니까 

 

그냥 뭐 이런게 있었지~ 아 맞다 이거였지 ?? 하는 정도로 스윽 훑어보고 지나가면 될것 같은데 흠...

 

 

일단 알아볼건 수치 연산자, null 값 입력 관련 연산자, 값 비교 연산자, 타입 비교 연산자, 논리 연산자 요정도?

 

1. 기본 수치 연산자

기본 산수 기능 

void main() {
  double number = 2;

  print(number + 2); // 4 출력
  print(number - 2); // 0 출력
  print(number * 2); // 4 출력
  print(number / 2); // 1 출력. 나눈 몫
  print(number % 3); // 2 출력. 나눈 나머지

  // 단항 연산도 됩니다.
  number++; // 3
  number--; // 2
  number += 2; // 4
  number -= 2; // 0
  number *= 2; // 4
  number /= 2; // 1
}

▼ 실행 결과
4.0
0.0
4.0
1.0
2.0

 

2. null 관련 연산자

다트 언어에서는 변수 타입이 기본적으로는 null  값을 가질 수 없고

 

null 값을 가지는지 여부를 지겁 지정해줘야한다

 

null 값을 지정해 주기 위해서는 타입 뒤 '?' 를 추가해줘야 한다

 

void main() {
  // 타입 뒤에 ?를 명시해서 null값을 가질 수 있습니다.
  double? number1 = 1;

  // 타입 뒤에 ?를 명시하지 않아 에러가 납니다.
  double number2 = null;
}

 

null을 가질 수 있는 변수에 새로운 값을 추가할 때 ??를 사용하면 기존에 null인 때만 값이 저장되도록 할 수도 있다

 

void main() {
  double? number; // 자동으로 null값 지정
  print(number);

  number ??= 3; // ??를 사용하면 기존 값이 null일 때만 저장됩니다.
  print(number);

  number ??= 4; // null이 아니므로 3이 유지됩니다.
  print(number);
}

▼ 실행 결과
null
3.0
3.0

 

3. 값 비교 연산자

값의 크기를 비교하는 연산자

 

void main() {
  int number1 = 1;
  int number2 = 2;

  print(number1 > number2); // false
  print(number1 < number2); // true
  print(number1 >= number2); // false
  print(number1 <= number2); // true
  print(number1 == number2); // false
  print(number1 != number2); // true
}

 

4. 타입 비교 연산자

is 키워드를 사용하여 변수의 타입 비교

 

void main() {
int number1 = 1;

  print(number1 is int); // true
  print(number1 is String); // false
  print(number1 is! int); // false. !는 반대를 의미합니다(int 타입이 아닌 경우 true).
  print(number1 is! String);// true
}

 

5. 논리 연산자

and 는 && or 는 ||

 

void main() {
  bool result = 12 > 10 && 1 > 0; // 12가 10보다 크고 1이 0보다 클 때
  print(result); // true

  bool result2 = 12 > 10 && 0 > 1; // 12가 10보다 크고 0이 1보다 클 때
  print(result2); // false

  bool result3 = 12 > 10 || 1 > 0; // 12가 10보다 크거나 1이 0보다 클 때
  print(result3); // true

  bool result4 = 12 > 10 || 0 > 1; // 12가 10보다 크거나 0이 1보다 클 때
  print(result4); // true

  bool result5 = 12 < 10 || 0 > 1; // 12가 10보다 작거나 0이 1보다 클 때
  print(result5); // false
}

 

 

뭐 요정도?

 

특별한건 변수에 null 값을 넣어주려면 무조건 '?' 를 붙여야하고

 

is 로 타입을 확인하는것 정도

 

다른건 특별한건 없었다~