본문 바로가기
개발자 : devZucca;/Flutter

var vs dynamic in Dart - Flutter, Dart 플러터(다트)

by ZUCCA 2020. 6. 9.
반응형

기술 블로그 번역 3편입니다.

 

오늘은 Dart언어에서 변수를 선언할때 쓰이는 var과 dynamic 두 키워드를 비교합니다. 이해를 위해 자바스크립트 코드가 함께 있으니, 자바스크립트를 알고 있는 분은 좀 더 쉽게 이해할 수 있습니다.

 

https://www.nstack.in/blog/var-vs-dynamic-in-dart/?fbclid=IwAR3cXZ7LaevyYpj_BH0LjNZjldqolKQ1NDG2ybfD5kr9IS8uwrYe4ST8KAU

 

var vs dynamic in Dart | nStack

var and dynamic are used to declare variable in Dart and there is very interesting difference between them.

www.nstack.in

 

var vs dynamic in Dart

 Dart의 var 키워드는 JS의 JavaScript 키워드와 매우 유사하지만, 정확히 똑같다고 할 수는 없습니다. 대부분의 Dart 개발자는 Dart의 var를 JavaScript의 var처럼 사용하지만 이는 올바르지 않습니다. 이를 이해하기 위해 몇 가지 예를 들어 설명하겠습니다.

더보기

Dart에는 JavaScript의 var 키워드와 동등한 dynamic 키워드가 있습니다.

아래 4개의 예제를 참고해주세요.

Example 1

 JavaScript와 Dart에서는 var을 사용하여 정의된 변수에 모든 타입의 데이터를 저장할 수 있습니다. 

 

Dart Code Example

//main.dart

void main() {
     var x = 'Maths pi';
     var y = 3.14;

     print(x); // Maths pi
     print(y); // 3.14
}

JavaScript Code Example

//script.js

 var x = 'Maths pi';
 var y = 3.14;

 console.log(x); // Maths pi
 console.log(y); // 3.14

 

Example 2

JavaScript와 Dart는 서로 다른 종류의 데이터를 같은 변수에 저장할 수 있습니다.

 

Dart Code Example

//main.dart

void main() {
    var x ;
    x = 'Math pi';
    print(x); // Maths pi

    x = 3.14;
    print(x); // 3.14
}

JavaScript Code Example

//script.js

var x ;
 x = 'Math pi';
 console.log(x); // Maths pi

 x = 3.14;
 console.log(x); // 3.14

 

Example 3

 이제 Example 1과 2를 혼합하여 변수를 초기화하고, 다른 데이터 유형을 동일한 변수에 저장하려고 합니다. Dart에서는 유효하지 않지만 JavaScript에서는 유효하기 때문에 오류가 발생합니다.

 

Dart Code Example

//main.dart

void main() {
     var x = 'Math pi';
     print(x);  // Maths pi

     x = 3.14;  // 여기서 컴파일 에러가 발생합니다.
                // 문자열 변수에 double 값을 할당하려했기 때문입니다.
     print(x);
}

 

JavaScript Code Example

//script.js

 var x ;
 x = 'Math pi';
 console.log(x); // Maths pi
 x = 3.14;
 console.log(x); // 3.14

(Dart에서 발생한 컴파일 오류가 JavaScript 예제에서는 발생하지 않습니다.)

 

 

Example 4

 마지막 예제입니다. Dart 에서 var 대신 dynamic을 사용하면 오류가 발생하지 않습니다. Dart에서의 dynamic은 JavaScript의 var와 동일합니다.

 

Dart Code Example

//main.dart

void main() {
     dynamic x = 'Math pi';
     print(x); // Maths pi
     x = 3.14; 
     print(x); // 3.14
}

 

JavaScript Code Example

 //script.js
 
 var x;
 x = 'Math pi';
 console.log(x); // Maths pi
 x = 3.14;
 console.log(x); // 3.14
반응형