[Flutter] Dart 기본 문법 익히기(1)

2025. 1. 3. 13:45·Flutter
728x90
반응형
SMALL

기본 개념 

// 코드의 시작점
void main() {

  int n1 = 10;
  double d1 = 10.0;
  bool b1 = true;
  String s1 = '홍길동'; // 홑따옴표 권장 사항
 
}

 

데이터란?
 - 사물이나 현상에서 얻어진 사실 또는 값을 의미한다.

변수란 뭘까?
- 값을 저장할 수 있는 메모리 공간, 즉 값을 저장해 놓고 이후에 재사용 하거나 변경할 수 있도록 메모리 공간을 이름으로 할당한 개념을 말한다.

 

데이터 타입이란?
- 메모리 공간에 들어간 값의 형태이다.

 

dart 기본 메모리 공간 3가지

1. 스택(stack) - 지역 변수, 매개 변수
2. 힙 영역 (heap) - new / 리터럴로 선언된 값들
3. 정적 영역(static) - 전역변수, 클래스의 static 변수, 컴파일 시점 상수 등

 

타입 확인 함수

// 코드의 시작점
void main() {

  int n1 = 10;
  double d1 = 10.0;
  bool b1 = true;
  String s1 = '홍길동'; // 홑따옴표 권장 사항

  print('정수 : ${n1.runtimeType}');
  print('실수 : ${d1.runtimeType}');
  print('정수 : ${b1.runtimeType}');
  print('정수 : ${s1.runtimeType}');
  
}

- 타입 확인 - runtimeType 의 활용
- 디버깅 및 오류 방지

- 예상치 못한 타입의 값이 들어올 경우, 프로그램이 제대로 동작하지 않을 수 있다.
- runtimeType 녀석을 활용해서 타입 체크를 할 수 있다.

 

타입 추론

// 코드의 시작점
void main() {

  var n1 = 1;
  var d1 = 10.1;
  var b1 = true;
  var s1 = '홍길동';

  print(n1.runtimeType);
  print('실수 : ${d1.runtimeType}');
  print('부울 : ${b1.runtimeType}');
  print('문자열 : ${s1.runtimeType}');

  print('------------------------------------');
  // var 키워드로 한 번 초기화된 데이터 타입은 다른 데이터 타입으로 변경이 불가능 하다.
  // n1 = 20.1; 오류 발생

  dynamic dyN1 = 100;
  dyN1 = 20.5;
  print('dyN1 ${dyN1.runtimeType}');
  // dynamic 타입은 모든 타입을 받을 수 있고 다른 타입으로 변경도 가능하다.
} // end of main

- 타입 추론이란?
- 개발자가 변수의 타입을 명시하지 않아도 자동으로 적절한 타입을 결정해주는 기능을 말한다.
Dart 언어에서는 두가지 키워드를 제공.
- var(타입 변경 가능), dynamic(타입 변경 불가능)

 

상수

// 코드의 시작점
void main() {
  // final - 런타임 상수(Run-time Constant)
  // 프로그램이 실행되는 도중에 값이 결정되며, 이후에는 변경 불가능
  final int n1 = 10;
  // n1 = 100; 컴파일 시점에 오류 발생

  // const - 컴파일 타임 상수 (Compile-time Constant)
  // 코드가 컴파일 될 때 값이 확정되어 진다.

  const double d1 = 101.0;
  // d1 = 20.1; 변경 불가능

  // 상수 사용시 데이터 타입도 역시 생략 가능 하다.
  final a1 = 100;
  const b1 = true;
} // end of main

상수란?

- 한번 할당된 값이 변경되지 않는 변수이다.
- dart 에서는 final 키워드와 const 키워드를 제공한다.
-> 둘 공통점은 "값을 변경할 수 없다"에 있지만 둘에 차이점은 컴파일 시점인지(const), 런타임 시점인지(final)

 

연산자

// 연산자
// 산술 연산자
void main() {
  // 더하기
  print('3 + 2 = ${3 + 2}');
  print('3 - 2 = ${3 - 2}');
  print('3 * 2 = ${3 * 2}');
  print('3 / 2 = ${3 / 2}');

  // 나머지 연산자
  print('3 % 2 = ${3 / 2}');
  print('5 ~/ 2 = ${5 ~/ 2}');
}

 

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

  // 왼쪽 값이 오른쪽 값보다 작다
  print(' 2 < 3 -> ${2 < 3}'); // true
  // 왼쪽에 있는 값이 오른쪽에 있는 값보다 크다
  print(' 2 > 3 -> ${2 > 3}'); // false

  // 왼쪽에 있는 값이 오른쪽에 있는 값보다 작거나 같다
  print(' 2 <= 3 -> ${2 <= 3}'); // true

  // 왼쪽에 있는 값이 오른쪽에 있는 값보다 크거나 같다 -- false
  print(' 2 >= 3 -> ${2 >= 3}'); // false
}
// 논리 연산자
void main() {
  bool isRainy = true;
  bool hasUmbrella = false;

  // and
  //       T    &&      T   ---> True
  print(isRainy && hasUmbrella);
  print(hasUmbrella && isRainy);

  // OR
  print(isRainy || hasUmbrella);
  print(hasUmbrella || isRainy);

  // NOT
  print(!isRainy);
}
728x90
반응형
LIST

'Flutter' 카테고리의 다른 글

[Flutter] store-app (1)  (0) 2025.01.06
[Flutter] SDK 변경  (0) 2025.01.06
[Flutter] Dart 클래스와 인스턴스  (3) 2025.01.03
[Flutter] Dart 기본 문법 익히기(2)  (1) 2025.01.03
[Flutter] Flutter란 무엇인가요? 🚀  (1) 2025.01.02
'Flutter' 카테고리의 다른 글
  • [Flutter] SDK 변경
  • [Flutter] Dart 클래스와 인스턴스
  • [Flutter] Dart 기본 문법 익히기(2)
  • [Flutter] Flutter란 무엇인가요? 🚀
junhyeokkk
junhyeokkk
나의 개발자 성장기
  • junhyeokkk
    백엔드 개발자 준혁의 성장일지
    junhyeokkk
  • 전체
    오늘
    어제
    • 분류 전체보기 (59)
      • Flutter (13)
      • 개발환경구축 (3)
      • HTTP (0)
      • CS지식 (5)
      • 코딩테스트 (10)
      • JAVA (7)
      • 데이터베이스 (7)
      • Node.js (9)
      • TypeScript (1)
      • Azure (3)
      • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩테스트
    백엔드
    js
    Flutter
    db
    개발자
    알고리즘
    Java
    디자인패턴
    Microsoft
    nodejs
    MSsql
    마이크로소프트sql
    CS지식
    백엔드개발자
    데이터베이스
    sql튜토리얼
    node.js
    RDBMS
    자바
    cosmos db
    백엔드개발
    azure
    node
    라이브러리
    programmers
    프로그래머스
    개발자준비
    Typescript
    DART
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
junhyeokkk
[Flutter] Dart 기본 문법 익히기(1)
상단으로

티스토리툴바