[Dart] 정의 및 타입

오묘(吳猫)·2022년 5월 11일
0

Dart

목록 보기
1/5
post-thumbnail

1. 다트(Dart)란 무엇인가?🤔

구글(Google)이 웹 프론트엔드 구현을 목적으로
2011년에 발표한 웹 프로그래밍 언어(https://dart.dev/)입니다.

다트는 프론트엔드 뿐만 아니라 서버 프로그래밍, 명령어 스크립트 등으로 사용이 가능하며 웹앱이 아닌 네이티브 코드로 안드로이드 및 ios 용 앱을 동시에 개발하는 것도 가능합니다.

2. 다트(Dart)의 특징

👉 다트는 main() 함수로 시작합니다.

void main() {
    // Hello World 출력
    print('Hello World');
}

👉 위에서 이미 선언한 변수는 같은 스코프(Scope) 안에서 절대로 선언할 수 없습니다.

- 스코프(Scope)란? 
우리말로 번역하면 '범위' 라는 뜻으로 
'변수에 접근할 수 있는 범위'를 말합니다.
  var name = 'Dart1';
  var name = 'Dart2'; // 에러

3. 변수와 타입

👉 정수 타입(Integer Type)

void main() {
  // 정수
  // integer
  int number1 = 10; // 양수
  int number2 = -10; // 음수
  
  
  print(number1); // 10
  print(number2); // -10
  
  print(number1 + number2); // 0
  print(number1 - number2); // 20
  print(number1 / number2); // -1
  print(number1 * number2); // -100
}

👉 실수 타입(Double Type)

void main() {
    // 실수
    // double
    double number1 = 2.5;
    double number2 = 0.5;

    print(number1 + number2); // 3
    print(number1 - number2); // 2
    print(number1 / number2); // 5
    print(number1 * number2); // 1.25
}

👉 참과 거짓 타입(Boolean)

void main() {
    // 맞다 / 틀리다
    // Boolean
    bool isTrue = true;
    bool isFalse = false;
}

👉 문자 타입(String Type)

문자 타입(String Type)과 var 의 차이점

- 문자 타입은 문자값만 대입할 수 있습니다.
- var 는 대입한 값에 따라 자동으로 타입을 유추를 합니다.

자동으로 타입을 유추해주면 var 사용하면 되지 않나요?

- 앞에 선언한 타입을 타입에 맞게 직관적으로 명시해주면 코드 가독성이 좋아집니다.
void main() {
    // 글자 타입
    // String
    String name1 = '다트';
    String name2 = '언어';

    print(name1); // 다트
    print(name2); // 언어
    
    print(name1 + name2); // 다트언어
    
    // 띄어쓰기
    print(name1 + ' ' + name2); // 다트 언어
    print('${name1} ${name2}'); // 다트 언어
    
    var name3 = '플러터';
    var number = 10;
    
    print(name3.runtimeType); // String
}

👉 다이나믹 타입(Dynamic Type)

다이나믹 타입(Dynamic Type)과 var 의 차이점

- var 타입의 경우 한 번 변수를 선언하면 
  선언했던 변수의 타입으로 픽스(fix)가 되어 타입을 변경할 수 없습니다.

- 다이나믹 타입(dynamic type)의 경우 
  선언했던 변수의 타입과 무관하게 여러번 타입을 변경할 수 있습니다.
void main() {
  dynamic name1 = '다트';
  print(name1);
  
  dynamic number = 1;
  print(number);
  
  var name2 = '언어';
  print(name2);
  
  print(name1.runtimeType); // String
  print(name2.runtimeType); // String
  
  name1 = 2; // 2
  name2 = 5; // 에러
}
profile
괴발개발 기록일지

0개의 댓글