Skip to content

第3章:Dart 核心语法基础

3.1 程序入口

在 Dart 中,每个程序都必须有一个 main() 函数作为入口点。main() 函数是 Dart 程序的唯一入口,程序从这里开始执行。

基本语法

dart
void main() {
  // 代码逻辑
}

示例

dart
void main() {
  print('Hello, Dart!');
}

3.2 变量与常量

变量声明

Dart 提供了几种声明变量的方式:

  1. 使用 var 关键字

    • 变量类型会根据初始值自动推断
    • 变量的值可以后续修改
    dart
    var name = 'Dart'; // 自动推断为 String 类型
    name = 'Flutter'; // 可以修改值
  2. 使用 dynamic 关键字

    • 变量可以存储任何类型的值
    • 类型检查在运行时进行
    dart
    dynamic value = 'Hello'; // 初始为 String 类型
    value = 123; // 可以改为 int 类型
  3. 使用 Object 关键字

    • 变量可以存储任何对象
    • 但需要进行类型转换才能使用特定类型的方法
    dart
    Object obj = 'Hello';
    String str = obj as String; // 需要类型转换
    print(str.length);

常量声明

Dart 提供了两种声明常量的方式:

  1. 使用 final 关键字

    • 只能赋值一次
    • 可以在运行时计算值
    dart
    final String name = 'Dart';
    final age = 10; // 类型可以推断
  2. 使用 const 关键字

    • 只能赋值一次
    • 值必须在编译时确定
    dart
    const String name = 'Dart';
    const double pi = 3.14159;

变量命名规则

Dart 的变量命名规则:

  1. 必须以字母或下划线开头
  2. 后续字符可以是字母、数字或下划线
  3. 区分大小写
  4. 不能使用 Dart 关键字作为变量名

示例

dart
// 正确的变量名
var name;
var _age;
var user123;

// 错误的变量名
var 123name; // 不能以数字开头
var name-123; // 不能包含连字符
var class; // 不能使用关键字

3.3 基础数据类型

数值类型

  1. 整数 (int)

    • 表示整数
    • 范围:-2^63 到 2^63 - 1
    dart
    int age = 18;
    int number = -100;
  2. 浮点数 (double)

    • 表示小数
    • 64位双精度浮点数
    dart
    double height = 1.75;
    double pi = 3.14159;

常用操作

  • 加减乘除:+, -, *, /
  • 取模:%
  • 自增自减:++, --

字符串类型

声明

dart
String name = 'Dart';
String message = "Hello, World!";

拼接

dart
String firstName = 'John';
String lastName = 'Doe';
String fullName = firstName + ' ' + lastName; // 使用 + 运算符
String greeting = 'Hello, $fullName!'; // 使用字符串插值

常用方法

  • length:获取字符串长度
  • isEmpty:检查字符串是否为空
  • contains():检查字符串是否包含指定子串
  • substring():截取子串
  • replaceAll():替换字符串
  • toLowerCase():转换为小写
  • toUpperCase():转换为大写

布尔类型

声明

dart
bool isTrue = true;
bool isFalse = false;

逻辑判断

dart
if (isTrue) {
  print('条件为真');
} else {
  print('条件为假');
}

空类型

Dart 2.12+ 引入了空安全(null safety)特性,默认情况下变量不能为 null。

可空类型

dart
String? name; // 可以为 null
name = null; // 合法
name = 'Dart'; // 也可以赋值

空安全操作

  • ??:空值合并运算符
  • ??=:空值赋值运算符
  • ?.:可选链运算符

3.4 注释

Dart 支持三种注释方式:

  1. 单行注释

    dart
    // 这是单行注释
  2. 多行注释

    dart
    /*
    这是多行注释
    可以跨越多行
    */
  3. 文档注释

    dart
    /// 这是文档注释
    /// 用于生成 API 文档
    void main() {
      // 代码
    }

3.5 实操案例

声明变量、常量,实现简单数值计算、字符串拼接

dart
void main() {
  // 声明变量
  var name = 'Dart';
  int age = 5;
  double height = 1.75;
  
  // 声明常量
  final String author = 'Google';
  const double pi = 3.14159;
  
  // 数值计算
  int a = 10;
  int b = 20;
  int sum = a + b;
  int difference = a - b;
  int product = a * b;
  double quotient = a / b;
  
  // 字符串拼接
  String firstName = 'John';
  String lastName = 'Doe';
  String fullName = '$firstName $lastName';
  String greeting = 'Hello, $fullName!';
  
  // 打印结果
  print('Name: $name');
  print('Age: $age');
  print('Height: $height');
  print('Author: $author');
  print('Pi: $pi');
  print('Sum: $sum');
  print('Difference: $difference');
  print('Product: $product');
  print('Quotient: $quotient');
  print('Greeting: $greeting');
}

运行结果

Name: Dart
Age: 5
Height: 1.75
Author: Google
Pi: 3.14159
Sum: 30
Difference: -10
Product: 200
Quotient: 0.5
Greeting: Hello, John Doe!

3.6 新手易错点

  1. 变量未初始化

    • 在空安全模式下,非可空变量必须初始化
    • 错误示例:int age; // 错误,必须初始化
    • 正确示例:int age = 0;int? age;
  2. 空安全使用错误

    • 错误示例:String name; name = null; // 错误,非可空变量不能赋值为 null
    • 正确示例:String? name; name = null;
  3. 命名不规范

    • 错误示例:var 123name; // 错误,不能以数字开头
    • 正确示例:var name123;
  4. 类型不匹配

    • 错误示例:int age = '18'; // 错误,类型不匹配
    • 正确示例:int age = 18;int age = int.parse('18');
  5. 字符串插值错误

    • 错误示例:print('Age: age'); // 错误,变量不会被解析
    • 正确示例:print('Age: $age');print('Age: ${age}');

© 2026 编程马·菜鸟教程 版权所有