Dart의 변수를 정의하는 방법에 대해 공부한 내용.
변수 정의에 앞서 알아야 할 것은 Dart는 main 함수로부터 시작이 된다는 것이다.
필자는 현재 C#으로 개발을 오래 해왔기 때문에 변수의 타입을 지정하는 것에 익숙하다. (그러나 C#과는 또 다르다.)

이번에 게시할 내용은 NomadCoder에 무료 강의 기반이다.


변수 타입

void main() {
    //1. 변수 타입 or var
    //변수의 타입 혹은 var를 사용하는 경우는 나중에 변경 가능하다.
    //말 그대로 변수이다.
    int i = 12;
    var name = 'la';
    i = 123123123123;
    name = 'lalalala';
}

Final

//2. final - 한번만 변수 값을 할당하고 싶을 때 사용한다.
void main() {
    final name = 'JP';
    name = 'JPP'; //에러 발생
}

dynamic

void main() {
    //3. dynamic - 타입에 상관없이 변수 값을 할당 가능하게 한다.
    //아래 세 가지 변수 할당 전부 가능
    dynamic name;
    name = 'JP';
    name = 1212;
    name = true;

    //dynamic으로 정의된 변수는 아래와 같이 조건문으로 타입을 검사하면
    //해당 타입에 맞는 메서드를 호출해 사용할 수 있다.
    if(name is String) {
        name.length
    }
}

const

void main () {
    //4. const - 알고 있는 값에 대해 상수 값을 정의한다.
    const name = 'JP';
    name = 'JPP'; //상수 값은 변경될 수 없으므로 에러 발생

    //fetchAPI 함수의 값을 알 수 없으므로 에러 발생
    const name2 = fetchAPI(); 
}

null safety

void main() {
    //5. null safety - null 값을 참조하지 못하게 해준다.
    String name = 'JP';
    // 에러 발생
    name = null; 

    String? name2 = 'JP';
    // 정상 동작
    name = null; 
    // name 값이 null이 될 수 있어서 에러 발생
    name.isEmpty; 
    // 정상 동작 - name != null이 아닐 경우에만 isEmpty 동작
    name?.isEmpty;
    // name?.isEmpty와 같은 동작 결과 
    if(name != null) {
        name.isEmpty
    }
}

late

void main() {
    //6. late - 변수의 값을 나중에 초기화한다.
    // late는 API 호출 후 리턴 값을 정의하는데 주로 사용한다.
    late name;
    name = 'JP';

    late final String name;
    name = 'JP';
    name = 'JPJP'; //에러 발생
}

'Mobile' 카테고리의 다른 글

[Flutter] Flutter 설치방법  (0) 2023.10.12
[Flutter] Flutter의 동작 방식  (0) 2023.10.10
[Dart] Class 및 다양한 Class 속성에 대해  (0) 2023.10.10
[Dart] Dart의 Function 사용법  (0) 2023.10.10
[Dart] Dart의 Data Types  (0) 2023.10.09

+ Recent posts