쾌락코딩

Dart variable(다트 변수)

|

변수 선언

변수를 선언할 때 사용하는 키워드는 아래와 같다.

  • var : 변수(mutable)
  • final : 변하지 않는 값(immutable + 런타임 선언 가능)
  • const : 변하지 않는 값(imutable + 컴파일 타임 선언)
  • dynamic : 자바로 치면 Object
  • 각종 타입들

다트(Dart)는 Type Safe한 언어이지만, 코틀린과 동일하게 타입 추론이 가능한 언어이므로 선언시에 타입을 명시하지 않아도 된다.

void main() {
    var a = 1;
    final b = 2;
    cosnt c = 3;
    dynamic d = 4;
    d = 'four';
    String e = 'five'; // 타입 명시
}

finalconst의 차이점에 대한 내용은 Dart: final 과 const를 참고하자.

Type

언어에서 기본적으로 제공하는 타입은 아래와 같다.

  • Number
  • String
  • Booleans
  • List
  • Set
  • Map
  • Runes
  • Symbols

몇 가지 살펴볼만한 타입들을 알아보자.

Number

Dart의 Number에는 intdouble이 있다. 둘 모두 num이라는 추상 클래스를 상속 받았다. 한 가지 주의해야할 것은, doubleint형 값을 넣으려고 할 경우 자동 형변환을 해주지 않는다는 점이다.

void main(){
    int a = 1;
    double b = a; // 자바에선 가능하지만 다트에선 불가능
}

명시적으로 형변환을 해주거나, daouble 타입을 num으로 해주어야 한다.

void main(){
    // 명시적 타입 캐스팅
    int a1 = 1;
    double b1 = a1 as double;

    // num 타입으로 받기
    int a2= 1;
    num b2 = a;
}

String

문자열을 선언 할 때는, single qoute, double qoute를 구분하지 않는다.

void main() {
    final str1 = 'hello';    // single qoute
    final str2 = "hello2";   // double qoute
}

modern programming language답게 문자열 템플릿을 제공한다.

void main() {
    final myName = 'yongjun';
    final strTmeplate = 'Hello, My name is ${yongjun}';
}

List & Set & Map

void main() {
    // List
    var myList1 = [1, 2, 3, 4, 5];
    List<String> myList2 = ['one', 'two', 'three', 'four', 'five'];
    var myList3 = <String>['one', 'two', 'three', 'four', 'five'];

    // Set
    var set1 = {1, 2, 3};
    Set<String> set2 = Set<String>();

    // Map
    var map2 = {
        'key1' : 'myValue1',
        'key2' : 'myValue2,
    };
}

Comments