다트에 대한 유형 확인 작동 방식에 대해 혼란스러워하고 있습니다. 그림과 같이 일반 List<dynamic>
을 List<String>
에 할당하면됩니다. 즉, String
이 아닌 그 목록에있는 콘텐츠를 지정할 수 있다는 것을 의미합니다. 왜 그런가요?리스트 <dynamic>을리스트 <String>에 지정할 수있는 이유는 무엇입니까?
void main() {
List<String> a;
a = [1]; // pass
a = new List<int>(); // fail
a = 1; // fail
a = new List<String>(); // pass
a.add(1); // fail
}
선언 및 재 정의가 다른 서명/데이터 유형을 나타내지 않아야합니다. 동적 인 경우에도 동일한 유형의 내용이 있어야하며 여러 데이터 유형의 내용을 목록 인스턴스에 병합 할 수 없습니다. 멀티 타입 데이터를 원한다면 ArrayList를 사용할 수 있습니다. –