반응형
dynamic
- Dart언어에서 제공하는 특별한 타입
- 모든 유형의 값을 나타낼 수 있는 동적 타입
- 컴파일러가 해당 값을 검사하지 않고 직접 실행
설명
추론할 수 있는 데이터타입은 명시적으로 정의할 필요가 없습니다.
그러나 명시된 데이터타입의 문제점은 이 변수가 항상 한가지의 데이터타입을 유지하여야 한다는 것입니다.
만약 때에 따라서 변수를 다른 데이터타입으로 할당할 경우가 생기는데,
이런 경우를 고려하여 보다 동적인 변수를 만들고 싶을 때 dynamic 키워드를 사용하여 재할당 할 수 있습니다.
쉽게 말하면, 변수에 데이터타입을 따지지 않고 값 저장이 가능하다는 이점이 있습니다.
dynamic의 필요성
String message = 'hello?';
message = 1234;
// error : A value of type 'int' can't be assigned to a variabled of type 'String'.
위의 코드와 같이 문자열로 명시된 변수는 문자열의 값만 받을 수 있습니다.
하지만 코드 설계에 따라 부득이하게 다른 타입의 값을 받을 상황이 생길 수 있습니다.
이러한 경우, 문자열(String)이 아닌 dynamic 타입을 사용할 수 있습니다.
구문
- 변수 선언시 데이터타입에 dynamic 키워드를 사용하여 값 저장
dynamic 변수명 = 값;
사용 예시
// 문자열의 값 'message' 변수에 저장
dynamic message = 'Hello Dart!';
// 문자열 타입 값을 가지지만 dynamic 타입이므로 정수형의 값도 저장 가능
message = 999;
참고
반응형