Dart(1)

손병진·2021년 6월 10일
0

hello world

void main () {
  print('hello');
}
// dart 코드를 실행하면 main 함수가 실행된다

변수

void main(){
  // 타입을 지정하지 않는 변수 선언 방식
  var name = 'variable';

  // 정수 선언 방식
  int num1 = 12;
  int num2 = 12.1; // error
  num1 = 13; // 재할당 가능
  
  // 실수 선언 방식
  double num1 = 11.2;
  double num2 = 11; // 정수 할당 가능(정수 < 실수)
  
  // 문자
  String name1 = 'letter'; // String 선언은 대문자로 시작
  String name2 = 'bee';
  name1 + name2; // 가능
  
  // 문자열 안에 변수 사용
  '$name1 $name2 결과' // 변수앞에 $
  '${name1 + ' ' +name2} 결과' // {} 추가하여 연산 넣을 수 있다
  
  // boolean
  bool isTrue = true;
  
  // dynamic
  var test = 'letter';
  test = 1; // error 초기 할당된 값의 타입으로 정해진다
  
  dynamic test = 'lettet';
  test = 1; // 타입 변경 가능
  
  // var 를 dynamic 처럼 활용
  var test; // 할당 없이 선언만 해주면 여러 타입 변경이 가능하다
  test = 'letter';
  test = 1;
  
  // List
  List<String> example = [
    'test1',
    'test2',
    'test3',
  ];
  // 리스트 요소의 타입을 지정해줄 수 있다(안할 수도 있다)
  example[0];
  example.length;
  
  // Map
  Map dictionary1 = {
  	'prop1': 'value1',
  	'prop2': 'value2',
  };
  
  Map<int, String> dictionary2 = {
    0 : 'value1',
    1 : 'value2',
  };
  
  // Map method
  dictionary2.addAll({
    2 : 'value3'
  });
  // 요소 추가
  
  dictionary2.remove(2); // key 값을 넣어주면 삭제된다
  
  dictionary2.keys.toList(); // key값으로 배열만들기
  
  dictionary2.values.toList(); // value 값으로 배열만들기
  
  // final vs const
  final name1 = 'test';
  final String name2 = 'test';
  const name3 = 'test';
  const String name4 = 'test';
  // 두 타입 모두 타입을 지정하여 선언할 수 있다, 그리고 재할당이 불가하다
  
  final now1 = new DateTime.now(); // 가능 (런타임 시점 지정)
  const now2 = new DateTime.now(); // 에러 (빌드타립 시점 지정)
  // 즉, const는 주로 프로젝트에서 변하지 않는 상수값을 선언할 때 활용한다.
}

// enum
enum constant {
  first,
  second,
}

void main() {
  constant status = constant.first;
  // 이런식으로 타입 마냥 변수 앞에 지정해준다
  
  switch(status) {
    case constant.first:
      print('first');
      break;
    case constant.second:
      print('second');
      break;
    default
      print('none');
      break;
  }
}

해당 내용은 유튜버 코드팩토리님의 강의를 기반으로 작성되었습니다. 감사합니다^^

profile
https://castie.tistory.com

0개의 댓글