[2] Flutter 기초

찬과장·2025년 4월 22일

Flutter

목록 보기
2/22
post-thumbnail

학습목표

  • Dart의 변수선언과 타입을 이해한다.
  • Dart의 연산자를 이해한다.
  • Dart의 NullSafety를 이해한다.

Dart파일 생성

  • test 파일 우클릭 New -> Dart file 생성
  • 코드를 실행할 수 있는 구조 필요!
  void main(){
}
  • 위 코드를 작성하면 재생버튼이 생성된다.

Dart의 타입

  1. 숫자(int,double,num)
  • num 타입은 정수와 실수 둘다 담을 수 있다.
    • 따라서 변수명을 지정할 때는 num이라는 단어를 피하는 것이 좋다.
  1. 문자열(String)
  • 작은/큰/삼중 따옴표를 모두 사용할 수 있다.
void main(){
  String str1 = 'hello';
  String str2 = "즐거운 수업시간";
  String str3 = '''오늘 점심은?''';
}
  • 삼중 따옴표는 엔터 만으로도 개행이 인식된다.
void main(){
  String str3 = 
  '''오늘 
  점심
  은?
  뭐먹나요''';
  print(str3);
}
  • 결과
  • flutter는 문자와 숫자를 같이 출력할때에는 $ 포멧팅만을 사용하여 출력할 수 있다.
    void main(){
      int today = 22;
      print('오늘은 4월 $today 일 입니다.');
    }
  • 포멧팅된 변수에 연산을 하기위해서는 묶어주어야 한다.
    void main(){
      int today = 22;
      print('오늘은 4월 ${today+1} 일 입니다.');
    }
  1. 논리(bool)
  2. 콜렉션(List,Set,Map)
  3. 기타(Object,Future,Dynamic,타입?)
  • Dart의 변수 키워드는 데이터의 모든 타입을 받을 수 있다!
    • var : 한번 지정이 되면 데이터 타입 변경 불가
    • dynamic : 지정 이후에도 데이터 타입 변경 가능

데이터 타입을 확인하는 방법

  • runtimeType
    void main() {
      num n3 = 1.2;
      print(n3);
      print(n3.runtimeType);
    }

Dart의 연산자

  1. Dart의 산술연산자

  2. Dart의 비교 연산자

  3. Dart의 대입 연산자

  4. 증감 연산자

  5. 삼항연산자

Null Safety

NPE(Null Point Exception)

  • 객체가 특정값이 아닌 null을 가리켜서 발생하는 오류
  • 컴파일러가 걸러내지 못하고 프로그램 실행 중에 발생하므로 치명적일 수 있음
  • 코드 작성시 NPE가 발생하지 않도록 방지하는 것
      1. Nullable type : ? 기호사용
          void main(){
            // 타입? => 어떤 타입이든 null이라고 하는 값을 허용하는 타입!
            String? str = null;
          }
    1. NonNull : ! 기호사용
      • null값이 절대적으로 들어오지 않는 타입이다 라는걸 지정하기 위한 방법! => 변수명!
      • 절대 null이 들어갈 수 없다.

타입의 형변환 방법

  • 자바 ==> 형변환 형태 2가지 ==> 명시적(=강제), 묵시적(=자동)
  • dart 언어 ==> 무조건 명시적으로!
    void main(){
      num b = 10;
      b = b.toDouble();
      print(b.runtimeType);
    }
  • 문자 -> 숫자로 형태변환
    void main(){
      String num1 = '10';
      print(int.parse((num1)));
      print(double.parse(num1));
    }
profile
찬과장의 Daily Reflection

0개의 댓글