void main() {
print('=== 1. 基础语法和变量 ===');
var name = 'Dart';
String language = 'Flutter';
int number = 42;
dynamic dynamicValue = '可变类型';
dynamicValue = 100;
print('Hello $name and $language!');
print('数值: $number, 动态值: $dynamicValue');
print('\n=== 2. 函数 ===');
int add(int a, int b) => a + b;
print('加法: ${add(3, 5)}');
String greet(String name, [String title = 'Mr./Ms.']) {
return 'Hello, $title $name!';
}
print(greet('Alice'));
print(greet('Bob', 'Dr.'));
print('\n=== 3. 类和OOP ===');
final person = Person('Charlie', 30);
person.introduce();
final student = Student('David', 20, 'MIT');
student.introduce();
print('\n=== 4. 异步处理 ===');
fetchData().then((data) => print('异步数据: $data'));
processData();
print('\n=== 5. 集合操作 ===');
const numbers = [1, 2, 3, 4, 5];
final squared = numbers.map((n) => n * n).toList();
print('平方: $squared');
final evens = numbers.where((n) => n % 2 == 0);
print('偶数: $evens');
print('\n=== 6. 空安全 ===');
String? nullableString = null;
print(nullableString ?? '默认值');
print('\n=== 7. 扩展方法 ===');
print('12345'.reversed);
print('\n=== 8. Mixins ===');
final robot = Robot();
robot.work();
robot.fly();
print('\n=== 9. 泛型 ===');
final box = Box<String>('Secret');
print('盒子内容: ${box.content}');
}
class Person {
String name;
int age;
Person(this.name, this.age);
void introduce() {
print('我叫 $name,今年 $age 岁');
}
}
class Student extends Person {
String school;
Student(String name, int age, this.school) : super(name, age);
@override
void introduce() {
super.introduce();
print('我在 $school 学习');
}
}
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 1));
return '网络数据';
}
void processData() async {
final data = await fetchData();
print('处理后的数据: ${data.toUpperCase()}');
}
extension StringReverse on String {
String get reversed => split('').reversed.join();
}
mixin Worker {
void work() => print('工作中...');
}
mixin Flyer {
void fly() => print('飞行中...');
}
class Robot with Worker, Flyer {}
class Box<T> {
T content;
Box(this.content);
}