본문 바로가기
Flutter

[플러터 06] Dart 연산자

by JINJINC 2025. 1. 2.
728x90
반응형

 

Dart 의 final 과 const 

const 의 경우, 컴파일 타임에서 상수를 정의할 수 있다. 즉, const 로 정의한 상수는 런타임에서 정의되는 값을 설정할 수 없다는 의미다. 예를 들어 DateTime.now() 의 경우 런타임에서 호출 될 때마다 결과 값이 다른데 이러한 값은 const 로 설정할 수 없다. 결국 const 로 설정하는 값은 대부분 리터럴이 될 것이다.

final DateTime now = DateTime.now(); // 문제 없음
// const DateTime now = DateTime.now(); // compile error

 

//상수 - 한번 할당된 값이 변경되지 않는 변수이다.
//dart 에서는 final 키워드와 const 키워드를 제공한다.
//둘에 공통점은 값을 변경할 수 없다에 있지만
//둘의 차이점은 컴파일 시점인가, 런타임 시점이냐에 따라 달라짐
//const - 컴파일시점 , final-  런타임 시점

//코드의 시작점
void main() {
  // final -- 런타임 상수(Run-time Constant)
  //프로그램이 실행되는 도중에 값이 결정되며, 이후에는 변경 불가능
  final int n1 =10;
  //n1 = 100; 컴파일 시점에 오류 발생
  
  //const - 컴파일 타임 상수(compile-time Constant) 
  //코드가 컴파일 될 때 값이 확정되어 진다.
  
  const double d1 = 101.10;
  // d1 = 20.1; 변경 불가능 
  
  // 상수 사용시 데이터 타입도 역시 생략 가능하다
  final a1 = 100;
  const b1  = true;
  
}

 

 

void main() {
  print('3 + 2 = ${3 + 2}');
  print('3 - 2 = ${3 - 2}');
  print('3 * 2 = ${3 * 2}');
  print('5 / 2 = ${5 / 2}'); // 나누기
  
  print('3 % 2 = ${3 % 2}'); // 나머지
  print('5 ~/ 2 = ${5 ~/ 2}'); // 몫 연산자
}
더보기

결과

3 + 2 = 5
3 - 2 = 1
3 * 2 = 6
5 / 2 = 2.5
3 % 2 = 1
5 ~/ 2 = 2

 

 

//비교연산자
//두개의 값을 비교하여 결과를 참/거짓을 판별할 때 사용한다.
void main() {
  //같다
  print('2 == 3 => ${2 == 3}'); // false

  //다르다
  print('2 != 3 => ${2 != 3}'); // true

  //왼쪽값이 오른쪽값보다 작다
  print('2 < 3 => ${2 < 3}'); // ture

  //왼쪽값이 오른쪽 값보다 크다
  print('2 > 3 => ${2 > 3}'); // false
  //왼쪽값이 오른쪽 값보다 작거나 같다.
  print('2 <= 3 => ${2 <= 3}'); // ture

  // 왼쪽값이 오른쪽 값보다 크거나 같다.
  print('2 >= 3 => ${2 >= 3}'); // false
}

 

 

//논리연산자
void main() {
  bool isRainy = true;
  bool hasUmbrella = false;

  // T  && T => true;
  print(isRainy && hasUmbrella); // false;
  print(hasUmbrella && isRainy); // 빠른 평가 => 이미 false이기 때문에

  //or
  print(isRainy || hasUmbrella); //  빠른 평가  true
  print(hasUmbrella || isRainy); // true

  //Not
  print(!isRainy);  // false
  print(!hasUmbrella);  //true
}
728x90
반응형

'Flutter' 카테고리의 다른 글

[플러터 07] Dart 언어 함수  (0) 2025.01.03
[플러터 05] Dart언어의 기초1  (0) 2025.01.02
[플러터 04] 플러터란 ?  (2) 2025.01.02

댓글