Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
页面加载耗时 0.00 毫秒·物理内存 129.7MB ·虚拟内存 1372.6MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Dart是一种可选类型语言。Dart中的集合默认是异构的。换句话说,单个Dart集合可以托管各种类型的值。但是,可以使Dart集合保持同质值。泛型的概念可用于实现相同的目的。
泛型的使用强制限制集合可以包含的值的数据类型。这种集合被称为类型安全集合。类型安全是一种编程功能,可确保内存块只能包含特定数据类型的数据。
所有Dart集合都通过泛型支持类型安全实现。包含数据类型的一对尖括号用于声明类型安全的集合。
Collection_name <data_type> identifier= new Collection_name<data_type>
下面给出了List,Map,Set和Queue的类型安全实现。上述集合类型的所有实现也支持此功能。
void main() {
List <String> logTypes = new List <String>();
logTypes.add("WARNING");
logTypes.add("ERROR");
logTypes.add("INFO");
// iterating across list
for (String type in logTypes) {
print(type);
}
}
输出结果为:
WARNING ERROR INFO
尝试插入指定类型以外的值将导致编译错误。以下示例说明了这一点。
void main() {
List <String> logTypes = new List <String>();
logTypes.add(1);
logTypes.add("ERROR");
logTypes.add("INFO");
//iterating across list
for (String type in logTypes) {
print(type);
}
}
输出结果为:
1 ERROR INFO
void main() {
Set <int>numberSet = new Set<int>();
numberSet.add(100);
numberSet.add(20);
numberSet.add(5);
numberSet.add(60);
numberSet.add(70);
// numberSet.add("Tom");
compilation error;
print("Default implementation :${numberSet.runtimeType}");
for(var no in numberSet) {
print(no);
}
}
输出结果为:
Default implementation :_CompactLinkedHashSet<int> 100 20 5 60 70
import 'dart:collection';
void main(){
Queue <int> queue = new Queue <int>();
print(“Default implementation $ {queue.runtimeType}”);
queue.addLast(10);
queue.addLast(20);
queue.addLast(30);
queue.addLast(40);
queue.removeFirst();
for(int no in queue){
打印(无);
}
}
输出结果为:
Default implementation ListQueue<int> 20 30 40
类型安全的映射声明指定数据类型
Map <Key_type, value_type>
void main() {
Map <String,String>m={'name':'Tom','Id':'E1001'};
print('Map :${m}');
}
输出结果为:
Map :{name: Tom, Id: E1001}
包是一种封装一组编程单元的机制。应用程序有时可能需要集成某些第三方库或插件。每种语言都有一种机制来管理外部软件包,如Maven或Gradle for Java,Nuget for .NET,npm for Node.js等。 ...