// main 함수는 실행함수로 반드시 있어야함
void main() {
  // 1. 변수선언 var: 함수나 메소드 내부 지역변수 선언시 var 주로 사용
  var name = '지노'; // 선언하는 타입(지금은 STRING)으로 맞춰짐
  // = String name;
  // class 에서 변수나 property를 선언할 때는 타입을 지정해줌
  name = 'gino'; //변수를 수정할 때는 같은 타입으로

// 2. dynamic type
  var namm2; // 변수가 어떤 타입인지 알기 어려울 때, 특히 json이랑 함께 작업할 때 유용
  // = dynamic name2;
  // dynamic 은 가급적 쓰지 않고 정말 필요할 때만 써야함
  name2 = 'gino';
  name2 = true;
  name2 = 12;

  if (name2 is int) {
    // dynamic 변수인 경우 if문 이렇게 활용하기도 함
  }

// 3. null safety
// 어떤 변수가 특정타입도 되고, NULL도 될 수 있게하려면 ? 활용 (?는 변수를 nullable로 만들어줌)
  String? name3 = 'gino';
  name3 = null;
  name3?.isNotEmpty; // null이 아니라면 isNotEmpty 속성을 달라고 요청
  // ? 문법은 API로 부터 데이터를 받아올 때 많이 활용됨

// 4. Final 변수를 수정 불가능하게 만들어줌
  final name4 = 'gino';
  name4 = 'ginoo'; // final로 변수선언했기 때문에 값 수정 불가능

// 5. 수식어 late
  late final String name5; // 데이터값 없이 변수를 선언할 수 있게 해주는 수식어
  // do something, go to api
  name5 = 'api'; // api로 부터 받은 데이터를 넣어줌

// 6. const : compile-time constant를 만들어줌
  const max_allowed_price = 120; // 앱을 스토어에 올리기 전에 미리 값을 알고 있을 대 활용
  // 만약 api로부터 받아오거나, 사용자의 입력값을 받아야한다면 const는 쓰면 안됨 (런타임 전에 변수가 완성되는 경우에 쓰임)

}
profile
나무를 심는 사람

0개의 댓글