一段 Dart

33 阅读1分钟
void main() {
  // ========== 1. 基本语法和变量 ==========
  print('=== 1. 基础语法和变量 ===');
  var name = 'Dart'; // 类型推断 (var)
  String language = 'Flutter'; // 显式类型声明
  int number = 42;
  dynamic dynamicValue = '可变类型'; // 动态类型
  dynamicValue = 100; // 可重新赋值不同类型

  print('Hello $name and $language!'); // 字符串插值
  print('数值: $number, 动态值: $dynamicValue');

  // ========== 2. 函数使用 ==========
  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.'));

  // ========== 3. 类和面向对象 ==========
  print('\n=== 3. 类和OOP ===');
  final person = Person('Charlie', 30);
  person.introduce();

  final student = Student('David', 20, 'MIT');
  student.introduce();

  // ========== 4. 异步编程 ==========
  print('\n=== 4. 异步处理 ===');
  fetchData().then((data) => print('异步数据: $data'));
  processData();

  // ========== 5. 集合操作 ==========
  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');

  // ========== 6. 空安全 ==========
  print('\n=== 6. 空安全 ===');
  String? nullableString = null; // 可空类型
  print(nullableString ?? '默认值'); // 空值合并运算符

  // ========== 7. 扩展方法 ==========
  print('\n=== 7. 扩展方法 ===');
  print('12345'.reversed); // 自定义扩展方法

  // ========== 8. Mixins ==========
  print('\n=== 8. Mixins ===');
  final robot = Robot();
  robot.work();
  robot.fly();

  // ========== 9. 泛型 ==========
  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();
}

// ========== Mixins ==========
mixin Worker {
  void work() => print('工作中...');
}

mixin Flyer {
  void fly() => print('飞行中...');
}

class Robot with Worker, Flyer {}

// ========== 泛型类 ==========
class Box<T> {
  T content;
  Box(this.content);
}