编辑代码

void main() {
  // (1)分别使用 var、bool, int, double, String、dynamic、Object 进行变量的定义

  // 使用 var 自动推导类型
  var variable = "Dart"; // var 根据初始化值自动推断为 String 类型

  // 定义布尔类型变量
  bool isStudent = true; // 表示是否是学生

  // 定义整数类型变量
  int age = 20; // 年龄

  // 定义浮点数类型变量
  double height = 175.5; // 身高

  // 定义字符串类型变量
  String name = "郭良辰"; // 姓名

  // 定义动态类型变量
  dynamic dynamicVar = "可以是任何类型"; // 动态类型,运行时决定

  // 定义对象类型变量
  Object objectVar = "对象类型"; // 对象类型,默认为 Object 类型

  // 输出变量值
  print("姓名: $name");
  print("年龄: $age");
  print("是否学生: $isStudent");
  print("身高: $height");
  print("变量: $variable");
  print("动态变量: $dynamicVar");
  print("对象变量: $objectVar");

  // 修改变量值并输出,展示不同定义方法的区别

  // var 类型的变量在推断后类型固定,不能更改类型
  // variable = 100; // 错误:var 已被推断为 String 类型,不能赋值为 int

  // dynamic 类型的变量可以在运行时更改类型和值
  dynamicVar = 42; // 正确:dynamic 可以更改类型和值
  print("修改后的动态变量: $dynamicVar");

  // Object 类型的变量只能存储对象,但无法直接操作具体类型的特性
  objectVar = 100; // 正确:Object 类型可以存储任何对象
  print("修改后的对象变量: $objectVar");

  // (3)分别使用 final 和 const 关键字来声明常量

  // 使用 final 声明运行时常量
  final String finalName = "计科(专起本)24-1 郭良辰"; // final 在运行时赋值一次后不可修改

  // 使用 const 声明编译时常量
  const int constNumber = 42; // const 在编译时赋值,值不可更改

  // 输出常量值
  print("Final 常量: $finalName");
  print("Const 常量: $constNumber");

  // 尝试修改 final 和 const 会报错
  // finalName = "修改后的名字"; // 报错:final 只能赋值一次
  // constNumber = 100; // 报错:const 值不可更改

  // 展示 final 和 const 的区别
  // final 可以在运行时初始化,而 const 必须在编译时初始化
  final runtimeValue = DateTime.now(); // final 可以引用运行时生成的值
  // const compileTimeValue = DateTime.now(); // 错误:const 只能引用编译时已知的值

  print("运行时常量 (final): $runtimeValue");
  print("个人信息:");
  print("班级: 计科(专起本)24-1");
  print("姓名: 郭良辰");
}