Flutter第二节----Dart中的常量与变量

目录

一.Dart的变量声明-----var

二.Dart中的常量声明-----const

三.Dart中的常量声明-----final

[var、const、final 核心区别对比](#var、const、final 核心区别对比)

四.总

本节系统讲解了 Dart 语言中三种核心的变量与常量声明方式:var 、const 和 final。我们将深入探讨它们各自的语法、特性、适用场景以及核心区别,并通过代码示例帮助您快速掌握如何在实际开发中正确选择和使用它们。

目标读者: Dart/Flutter 初学者、希望巩固变量声明基础知识的开发者,以及需要清晰理解 const 与 final 区别的编程爱好者。

一.Dart的变量声明-----var

语法:var 变量名=值/表达式;

注意:var在第一次赋值之后,类型被确定 后面不允许更改类型

特点:const是代码编译前被确定的,不允许表达式中有变量存在,必须有常量或者固定值

代码实例:

Dart 复制代码
void main(List<String> args) {
  var age=20;    //var第一次赋值之后,类型被确定 后面不允许更改类型
  print(age);
  age=21;
  print(age);
  var age1=15+17;
  print(age1);
}

var在第一次赋值之后,类型被确定 后面不允许更改类型,如上图所示age的类型为整型int,如果我们将其改为字符型char会发生什么呢?如图所示可以看到改完后报错了。

二.Dart中的常量声明-----const

场景:在数学中圆周率π永远是3.1415926....,是不允许被改变的,因此使用const来进行声明同类

语法:const 属性名=值/表达式;

注意:const表达式里面的值不允许有变量值

代码示例:

1.正常代码:

Dart 复制代码
void main(List<String> args) {
  const num1=3.1415926;    
  const length = 2 * num1 * 10;
  print(length);
}

2.注意事项演示代码:

Dart 复制代码
void main(List<String> args) {
  var num1=3.1415926;    
  const num=num1;             //num1为变量,将变量引入const运行就会出错
  const length = 2 * num * 10;
}

三.Dart中的常量声明-----final

场景:需要当前时间作为当前唯一的操作时间,时间一旦被确定就不可以被修改。

语法:final 属性名=值/表达式;

特点:final变量在运行时被初始化,其值设置后不可修改。

代码实例:

Dart 复制代码
void main(List<String> args) {
    final time = DateTime.now();
    print(time);
}

2.const 与 final的区别:

Dart 复制代码
void main(List<String> args) {
    final time = DateTime.now();
    time = DateTime.now();
    print(time);
}

两者的区别在于final是运行时不可以修改,const是编译时确认不可修改。

var、const、final 核心区别对比

下表清晰地对比了 var、const、final 三者在初始化时机、值可变性、类型要求和使用场景上的核心区别:

特性 var const final
初始化时机 运行时(第一次赋值时) 编译时 运行时
值可变性 可重新赋值(同类型) 不可更改 不可更改
类型要求 类型在第一次赋值时确定,之后不可更改类型 必须是编译时常量,表达式不能包含变量 可以是运行时确定的常量或变量
使用场景 值需要改变的变量 编译时就能确定且不会改变的值(如数学常数、配置值) 运行时才能确定且不会改变的值(如当前时间、API 响应结果)
示例 var age = 20; age = 21; // 允许 const pi = 3.1415926; const length = 2 * pi * 10; // 允许 final time = DateTime.now(); // time = DateTime.now(); // 错误,不可重新赋值

四.总结

本章介绍了 Dart 语言中三种主要的变量和常量声明方式,它们各有特点,适用于不同的场景:

  • var:用于声明变量,类型在第一次赋值时确定,之后不可更改类型,但可以重新赋值。
  • const:用于声明编译时常量,值必须在编译时确定,不允许在表达式中使用变量。
  • final:用于声明运行时常量,值在运行时初始化,一旦赋值后不可更改。

核心区别:

  • const vs final:const 是编译时常量,值在编译时确定;final 是运行时常量,值在运行时确定。
  • var vs const/final:var 声明的变量可以重新赋值(同类型),而 const 和 final 声明的常量一旦赋值后不可更改。

使用建议:

  • 如果值在编译时就能确定且不会改变,使用 const。
  • 如果值在运行时才能确定且不会改变,使用 final。
  • 如果值需要改变,使用 var。

掌握这三种声明方式的区别,有助于编写更高效、更安全的 Dart 代码。

相关推荐
2501_9445215911 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
行思理11 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang
Ken_111513 小时前
小体积附件下载正常,大附件下载异常
javascript
wangchunyu11413 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
变与不变80613 小时前
jQuery怎么使用
前端·javascript
神膘护体小月半14 小时前
flex 布局的 order 属性
前端·css
paopaokaka_luck14 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
仰望.14 小时前
vue 表格组件 vxe-table 树表格懒加载支持拖拽排序的详细用法
前端·javascript·vue.js·vxe-table
前端 贾公子14 小时前
vite-plugin-uni-manifest 升级指南
前端
小码哥_常14 小时前
iPhone 用户传了张 HEIC,我的前端崩了
前端