본문 바로가기

# 02/Dart

[Dart] dynamic / Object / var / final

반응형
dynamic a = 'abc';
a = 123;
a = true;
  • dynamic 은 type 및 value 변경이 가능하다.

 

Object b = 'abc';
b = 123;
b = true;
  • Object 역시 type 및 value 변경이 가능하다.

 

var c = 'abc';

c = 'cba';

c = 123; // compile error
c = true; // compile error
  • var 는 type 변경이 불가능하고 value 변경은 가능하다!

 

final d = 'abc';

d = 'cba'; // compile error
d = 123; // compile error
d = true; // compile error
  • final 은 type 및 value 변경이 불가능하다.

 

var a;
a = 'abc';
a = 123;
a = true;
  • 단, 위와 같이 변수를 선언만 해주고 초기화 해주지 않으면 dynamic 이 되어 type 및 value 변경이 가능해 진다.

 

 

dynamic / Object 차이!

void main() {
  //dynamic variable assigned with string first
  dynamic name = "john";

// you can assign dynamic variable to any variable
  String fname = name;
}
void main() {
  Object age = 25;

  int age1 = age as int;
  
}

 

main() {
  dynamic str = null; // no errors
  Object obj = null; // Compile time error
}

 

class Employee {
  printEmp() => print("Employee Object");
}

void main() {
  dynamic a = new Employee();
  Object b = new Employee();
  a.printEmp(); // No error
  b.printEmp(); // Compile error
}

 

반응형