[노마드코더] Dart 시작하기 #1 VARIABLES 정리

레일리·2024년 10월 29일
0
post-thumbnail

DartPad에서 설치 없이 연습 가능
노마드코더 Dart 시작하기에서 무료 수강 가능

#1.0 Hello World

  • main 함수는 모든 Dart 프로그램의 Entry point
  • 세미콜론 필수, 자동 추가 기능 없음
  • 일부러 세미콜론을 안 쓰는 경우도 있음
void main() {
  print('hello world');
}

#1.1 The Var Keyword

  • var 키워드로 변수를 생성
  • 타입을 명시하지 않아도 타입 추론 가능
  • 변수를 업데이트할 때에는 타입이 일치해야함
  • String과 같이 타입을 명시 할 수 이음
  • 함수나 메소드 내부에 지역 변수를 선언할 때에는 var를 사용
  • class에서 변수나 property를 선언할 때에는 타입을 지정
void main() {
  var name1 = '니꼬';
  String name2 = '내꼬';
}

#1.2 Dynamic Type

  • dynamic은 여러가지 타입을 가질 수 있는 변수에 쓰는 키워드
  • 변수가 어떤 타입일지 알기 어려운 경우 사용
  • 이상적으로는 쓰는 걸 피해야 함
void main() {
  dynamic name = '니꼬';
  name = 12;
  name = true;
}
  • dynamic 변수로 뭔가 작업을 하고 싶다면 먼저 타입 확인 필요
void main() {
  dynamic name = '니꼬';
  // name. 사용 가능한 욥션이 몇개 안뜸
  if(name is String) {
    // name. String 타입 관련 옵션 뜸
  }
  if(name is int) {
    // name. int 타입 관련 옵션 뜸
  }
}

#1.3 Nullable Variables

  • null safety는 개발자가 null 값을 참조할 수 없도록 하는 것
  • null 값을 참조하면 런타임 에러가 뜸
  • null에는 length라는 속성이 없기 때문에 에러(NoSuchMethodError)가 발생
// Without null safety:
bool isEmpty(String string) => string.length == 0;

main() {
	isEmpty(null);
}
  • dart에서는 어떤 변수가 null이 될 수 있음을 정확히 표시해야 함
  • nico(변수)가 String일 수도, null일 수도 있다는 것을 타입 뒤에 ?로 명시
  • nico(변수)를 사용하기 전에 null이 아님을 확인해 줘야 함
void main() {
  String? nico = '니꼬';
  nico = null;
  if (nico != null) {
    nico.isNotEmpty;
  }
  // 단축
  nico?.isNotEmpty;
}

#1.4 Final Variables

  • final 키워드를 사용하면 한 번 정의된 변수를 수정할 수 없게 함
  • js나 ts의 const랑 똑같음
void main() {
  final String nico = '니꼬';
  final nika = '니카';
}

#1.5 Late Variables

  • latefinal이나 var 앞에 붙여줄 수 있는 수식어
  • late는 초기 데이터 없이 변수를 선언할 수 있게 해줌
  • 값을 할당하기 전에는 접근 불가능
  • Flutter에서 API data fetching 시 자주 사용
void main() {
  late final String name;
  // print(name) 할당전 접근 불가능
  // do something, go to api
  name = 'nico';
  // name = '12' final이라서 불가능
}

#1.6 Constant Variables

  • const 키워드, 상수이므로 final과 마찬가지로 변경 불가능
  • dart의 const는 js와 ts와 다름, dart의 final과 비슷
  • dart에서 const는 compile-time constant를 만들어 줌
  • const는 compile-time에 알고 있는 값이어야 함
  • ex) API Key, max_allowed_price
void main() {
  const API = fetchApi(); // 이건 오류
  final API = fetchApi(); // 이건 됨
}
profile
나야, 개발자
post-custom-banner

0개의 댓글