Dart由Google于2011年发布,最初希望取代JavaScript。虽然这一目标没有实现,但Dart在2017年因Flutter框架而获得新生。
// Dart代码示例
// 类
class User {
final String name;
final int age;
final String? email;
User({required this.name, required this.age, this.email});
// 命名构造函数
User.guest() : name = 'Guest', age = 0, email = null;
// 工厂构造函数
factory User.fromJson(Map<String, dynamic> json) {
return User(
name: json['name'],
age: json['age'],
email: json['email'],
);
}
String get displayName => name.toUpperCase();
}
// 扩展方法
extension StringExtension on String {
bool get isValidEmail => contains('@') && contains('.');
}
// 异步和Future
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 1));
return 'Data';
}
// 集合操作
void main() async {
final numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
final evenSquares = numbers
.where((n) => n.isEven)
.map((n) => n * n);
print(evenSquares.toList());
// 使用Stream
final stream = Stream.periodic(Duration(seconds: 1), (i) => i).take(5);
await for (final value in stream) {
print('Tick: $value');
}
// null安全
String? maybeNull = null;
final length = maybeNull?.length ?? 0;
}
Dart的特点:
Future和Stream