반응형
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
}
반응형