带你读《深入浅出Dart》二、变量与数据类型

简介: 带你读《深入浅出Dart》二、变量与数据类型

二、变量与数据类型

在探索Dart语言的世界之前,我们首先需要熟悉一些基础的语法,包括如何声明和使用变量,以及理解Dart中的基础数据类型。


1.变量与声明方式


变量是我们在编程中存储和操控数据的基本单位。在Dart中,我们有多种方式来声明和使用变量。

 

使用 var 来声明一个变量,Dart会自动推断出变量类型。

 

var name = 'Dart'; // Dart 自动推断出 `name` 是 String 类型

 

我们也可以在声明变量时明确指定其类型,这样可以使得代码更易于理解,并且在编译时能够检查到类型错误。

 

String greeting = 'Hello Dart';

 

Dart2.12版本引入了空安全特性,如果变量可能含有空值,我们需要在类型后面加一个问号?

 

String? nullableString = null;

 

如果一个变量在初始化后值不再改变,我们可以使用 final const 声明它,这样可以使我们的程序更加安全。

final pi = 3.14159; const gravity = 9.8;

 

注意,final const 的区别在于,final 的值只能被设定一次,而 const 则是一个编译时常量。


2.数据类型


Dart是一个强类型语言,包含了许多常见的数据类型:

Numbers:包括 int double 两种类型。

 

int age = 18;
double score = 93.5;

 

Strings:表示文本的数据类型。可以通过单引号或者双引号来创建字符串。

 

String hello = 'Hello';

 

Booleans:包括 true false 两种布尔值。

 

bool isTrue = true;
bool isFalse = false;

 

Lists:一个有序的项目集合,也被称为数组。

 

List numbers = [1, 2, 3];

 

Maps:无序的键值对集合。

 

Map countries = {
  'CN': 'China',
  'US': 'United States',
  'JP': 'Japan'};

 

理解变量声明和数据类型是掌握Dart语言的重要基础。掌握这些知识后,我们就可以开始编写更加复杂的Dart程序了。

相关文章
|
JavaScript 前端开发 测试技术
|
2月前
|
消息中间件 NoSQL Java
spring boot2升级boot3指南
本文介绍了如何将Spring Boot 2.x升级至Spring Boot 3.x,涵盖使用OpenRewrite自动化重构工具进行代码转换、依赖版本升级、配置属性调整及常见问题处理等内容,帮助开发者高效完成升级工作。
1240 6
uniapp使用路由名称跳转
【9月更文挑战第11天】在UniApp中,可通过定义路由名称实现页面跳转,需在`pages.json`中设置页面的`name`属性。使用`uni.navigateTo`等API并指定名称即可跳转,例如`name: 'detailPage'`。目标页面可在`onLoad`函数中获取传递的参数,这种方式使代码更清晰且便于维护,尤其适合大型项目。
413 1
|
存储 缓存 JavaScript
【Uniapp 专栏】深入剖析 Uniapp 的运行机制原理
【5月更文挑战第12天】Uniapp是一款基于Vue.js的跨平台前端框架,通过抽象不同平台的差异,实现一套代码多平台运行,提升开发效率。其架构包括视图层(基于Vue.js组件)、逻辑层(JavaScript处理业务逻辑)和数据层(管理应用数据)。运行时,Uniapp会根据目标平台转换代码并适配。关键技术包括Web标准、原生插件和运行时环境。优化措施包含代码分包、数据懒加载和缓存机制。借助HBuilderX等工具,开发者能高效地进行开发和测试。Uniapp的运行机制融合多种技术,为跨平台应用开发提供便利。
1102 2
【Uniapp 专栏】深入剖析 Uniapp 的运行机制原理
|
存储 设计模式 Dart
Flutter笔记:GetX模块中不使用 Get.put 怎么办
依赖注入(Dependency Injection,对于很多真的就是简单的局部共享状态的场景,自己实现单例我个人感觉反而更好。首先,你不需要集中于创建代码初期就从各个模块中导入你的各个控制器,也不需要预先在应用初始化时就创建它们的实例,从而将实例添加到GetX依赖中进行管理。这使得mian文件中的代码更加简洁。如果某个局部状态控制器被移除,你也不需要回到mian文件中来对代码进行改动,只需要删除不用的部分。其次,在Dart语言中,为面向对象的单例实现提供了很方便的支持,仅仅三个小步骤就可以实现严格管理单例。
307 1
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习中的迁移学习技术
【10月更文挑战第11天】 本文探讨了深度学习中的迁移学习技术,并深入分析了其原理、应用场景及实现方法。通过实例解析,展示了迁移学习如何有效提升模型性能和开发效率。同时,文章也讨论了迁移学习面临的挑战及其未来发展方向。
|
Web App开发 数据采集 安全
Mac系统安装chromedriver遇到的问题和解决办法
Mac系统安装chromedriver遇到的问题和解决办法
999 1
|
Ubuntu 安全 Linux
linux系统详细安装过程,都在这里了
linux系统详细安装过程,都在这里了
292 0
|
存储 监控 大数据
【Elasticsearch专栏 15】深入探索:Elasticsearch使用API删除旧数据
本文探讨了如何使用Elasticsearch API管理并删除旧数据。Elasticsearch提供RESTful API,支持按条件批量删除。删除策略可基于时间、文档数量或索引。通过`DELETE BY QUERY` API,可以根据时间戳范围删除数据,如删除早于30天的记录。为处理大量数据,建议分批次进行,使用`scroll`和`size`参数控制。监控删除进度可使用任务ID。合理运用这些方法能有效优化存储,适应不同业务需求。
447 0
|
Dart JavaScript Shell
在 Flutter 中发出 HTTP 请求的最佳库(2022 年
本文将向您介绍最好的开源软件包列表,这些软件包可以帮助我们在 Flutter 应用程序中发出 HTTP 请求。事不宜迟,让我们探索重要的事情。 Http Pub likes: 3910+ GitHub stars: 735+ License: BSD-3-Clause Written in: Dart Links: Pub page | GitHub repo | Official docs
1847 0