Dart In Action -Dart快速入门(三)

简介: 写在前面本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。Flutter教程在这里Final 和 const如果您从不打算更改变量,请使用final或const,而不是var或类型。

写在前面

本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。
Flutter教程在这里

Final 和 const

如果您从不打算更改变量,请使用finalconst,而不是var或类型。 final变量只能被初始化一次; const变量是编译时常量。 (const变量是隐式的final。)final的顶级变量或者类的成员变量将在第一次使用时初始化。

注意:实例变量可以是final的,但不能是const
下面是一个创建并设置final变量的例子:

final name = 'Bob'; // 没有声明类型
final String nickname = 'Bobby'

您不可以修改一个final变量的值(final是不可变的。):

name = 'Alice'; // 错误: final变量只能被始化一次。

如果您让变量变成编译时常量,请使用const。 如果const变量是class级别的,则将其标记为static const。 在声明变量的地方,将值赋给编译时常量,例如数字或字符串文字,const变量或常数上的算术运算结果:

const bar = 1000000; // 压力单位 (dynes/cm2)
const double atm = 1.01325 * bar; // 标准大气压

const关键字不仅可以声明const变量。您还可以使用它来创建常量值,以及声明创建常量值的构造函数。 任何变量都可以具有常量值。

var foo = const [];
final bar = const [];
const baz = []; // 等同于 to `const []`

您可以从const声明的初始化表达式中省略const,就像上面的baz一样。 有关详细信息,请参阅不要冗余地使用const
您可以改变一个非 final或 非const变量的值,即使它曾经有一个常量值。

foo = [1, 2, 3]; // 曾经是 const []

你不能改变一个const变量的值:

baz = [42]; // 错误: const变量不能赋值。

内置类型

Dart特别支持以下类型:

  • 数字类型
  • 字符串
  • 布尔值
  • 表(lists,也被称作数组)
  • 映射(maps)
  • 符文(用于表示字符串中的Unicode字符)
  • 符号

您可以使用文字初始化任何这些特殊类型的对象。 例如,'this is a string'是一个字符串值,true是一个布尔文 值。

因为Dart中的每个变量都引用一个对象 - 一个类的实例 - 您通常可以使用构造函数来初始化变量。 一些内置类型有自己的构造函数。 例如,您可以使用Map()构造函数来创建Map。

目录
相关文章
|
10天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1216 5
|
9天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1181 87
|
10天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1776 12
|
19天前
|
人工智能 运维 安全
|
2天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
230 127
|
10天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
362 0