【Flutter 开发实战】Dart 基础篇:最基本的语法内容

news2024/7/6 19:59:59

在这里插入图片描述

在深入了解 Dart 这门编程语言之前,我们需要了解一些关于 Dart 的最基本的知识,像是常量、变量、函数等等,这样才能够让我们的开发效率更上一层楼。在本节,我们将探讨一些基础语法,包括入口方法 main、变量、常量以及命名规则。让我们一起揭开 Dart 的神秘面纱,为你带来更深层次的了解。

探寻 Dart 的大门:main 方法

在 Dart 中,所有程序的执行都始于 main 方法。这是程序的入口点,是代码开始执行的地方。不少初学者学习代码都会从 main 方法开始阅读,从而整理出整个工程项目的整体脉络。让我们看一个简单的 main 方法:

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

这是不少小伙伴初学编程时都会编写简单案例,在这个例子中,main 方法是程序的起点,print 函数用于在控制台输出文本,当你按下运行,就会在控制台内看到 Hello, Dart! 这段话。Dart 的语法简洁,让你能够迅速理解和编写代码。

变量:存储世界的记忆

在 Dart 中,变量用于存储数据。使用 var 关键字可以声明一个变量,而 Dart 会自动推断其类型。例如:

void main() {
  var message = "Hello, Dart!";
  print(message);
}

在这里,我们创建了一个名为 message 的变量,用于存储字符串;当我们点击运行后,就会把 message 中的存储的内容输出出来。Dart 的类型推断让我们无需明确指定变量类型,使得代码更加简洁。

常量:不变的世界

与变量不同,常量在 Dart 中是不可变的。通常使用 finalconst 关键字可以声明常量。const 表示编译时常量,其值在一开始就必须被赋值,而 final 在声明时可以不赋初始值,但只能在运行时被赋值一次。与 const 不同的是,final 是运行时常量,而且它具有惰性初始化的特性,即在运行时首次使用前才进行初始化。

void main() {
  final int hoursInDay = 24;
  const double gravity = 9.8;

  print("A day has $hoursInDay hours, and gravity is $gravity m/s².");
}

这里,我们创建了一个表示一天小时数的 final 常量和表示地球重力的 const 常量。常量的使用有助于提高代码的可读性和性能。

命名规则:为变量取名的注意事项

在 Dart 中,变量以及常量的命名需要注意一些常见的问题,否则会引起一些不必要的错误。以下是一些变量命名时的“能”与“不能”:

  • 变量名称要由数字、字母、下划线和美元符($)组成,比如 myVariable, user123, totalAmount, _internalVar, $price
  • 标识符开头不能是数字,123variable, 7daysOfWeek 这些都是错误的示范。
  • 标识符不能是保留字和关键字,class, if, import, void 这些都是关键字与保留字中存在的,不能够当作变量名使用。
  • 变量的名字是区分大小写的。ageAge 是两种不同的变量,注意区分。

下面是 Dart 中的一些保留字与关键字:

保留字:

abstractascovariantdeferreddynamic
exportexternalfactoryFunctionget
implementsimportinterfacelatemixin
onsetstaticsynctypedef

关键字:

assertbreakcasecatchclass
constcontinuedefaultdoelse
enumextendsfalsefinalfinally
forifinisnew
nullrethrowreturnsuperswitch
thisthrowtruetryvar
voidwhilewithyield

良好的命名规则是写出清晰、易懂代码的关键,下面也有一些常用的命名规范建议大家使用:

  • 变量和函数名应使用驼峰命名法,例如 myVariablecalculateTotal.
  • 类名应该使用帕斯卡命名法,例如 MyClass.
  • 避免使用缩写,除非是广为人知的缩写。
void main() {
  String favoriteColor = "Blue";
  int numberOfApples = 10;

  print("My favorite color is $favoriteColor, and I have $numberOfApples apples.");
}

上述代码中,我们就使用了驼峰命名法为变量取了清晰易懂的名字,使得代码更加可读。


在探索 Dart 的世界前,先搞懂 main 方法是大门;变量是记忆的存储,var 让你轻松;常量是不变的宇宙,finalconst 不一样聪明;命名规则像给变量取名字的诗歌,见名思意别太迷。在 Dart 的舞台,简单、有趣、清晰才是主角!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1366547.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ERA5和GNSS站点不并址的处理方法二:垂直补偿(获得GNSS站点高度的PWV、温度和气压,基于matlab)

0. 码字不易,点赞加关注(公众号:WZZHHH,部分资料在公众号可以下载) Part1 垂直补偿的原因 我们在获取GNSS站点位置的PWV有很多方法,其中一个是利用ERA5数据进行积分得到。由于ERA5格网位置和GNSS不并址&am…

信息安全监管

安全政策 中央办公厅2003的27号文件 《国家信息化领导小组关于加强信息安全保障工作的意见》 方针:积极防御,综合防范 目标、要求:全面提高信息安全防护能力,保护公众利益,维护国家安全 4大原则: 立足…

为什么建筑设计师选择网络渲染“效果图“

网络渲染一般是指:云渲染,建筑设计行业通常需要渲染室内、室内等场景的效果图,一般大型场景渲染时非常消耗电脑算力,并且渲染时长也会通过效果图的场景、尺寸等来决定,本文为用户整理建筑设计师选择网络渲染的原因&…

孪生神经网络MATLAB实战[含源码]

​一、算法原理 孪生神经网络( Siamese neural network)是一种深度学习网络,它使用两个或多个具有相同架构、共享相同参数和权重的相同子网。孪生网络通常用于寻找两个可比较事物之间的关系的任务。孪生网络的一些常见应用包括面部识别、签名…

3.9 EXERCISES

矩阵加法需要两个输入矩阵A和B,并产生一个输出矩阵C。输出矩阵C的每个元素都是输入矩阵A和B的相应元素的总和,即C[i][j] A[i][j] B[i][j]。为了简单起见,我们将只处理元素为单精度浮点数的平方矩阵。编写一个矩阵加法内核和主机stub函数&am…

用红葡萄酿造的白葡萄酒是怎样的?

“由黑变白”这是“黑葡萄”的直译,代表一种由深蓝到黑葡萄制成的白葡萄酒,这种酿酒方式起源于法国,黑皮诺和莫尼尔的红葡萄一直被加工成白葡萄酒,作为香槟的基础。这是可能的,因为红色浆果通常果肉较轻。红色素&#…

TypeScript 从入门到进阶之基础篇(八)函数篇

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇TypeScript 从入门到进阶…

Java课程设计团队博客 —— 基于网页的时间管理系统

博客目录 1.项目简介2.项目采用的技术3.功能需求分析4.项目亮点5.主要功能截图6.Git地址7.总结 Java团队博客分工 姓名职务负责模块孙岚组长 资源文件路径和tomcat服务器的相关配置。 前端的页面设计与逻辑实现的代码编写。 Servlet前后端数据交互的编写。 用户登录和断开连接…

独立式键盘控制的4级变速流水灯

#include<reg51.h> // 包含51单片机寄存器定义的头文件 unsigned char speed; //储存流水灯的流动速度 sbit S1P1^4; //位定义S1为P1.4 sbit S2P1^5; //位定义S2为P1.5 sbit S3P1^6; //位定义S3为P1.6 sbit S4P1^7; //位…

熟悉HBase常用操作

1. 用Hadoop提供的HBase Shell命令完成以下任务 (1)列出HBase所有表的相关信息,如表名、创建时间等。 启动HBase: cd /usr/local/hbase bin/start-hbase.sh bin/hbase shell列出HBase所有表的信息: hbase(main):001:0> list(2)在终端输出指定表的所有记录数据。 …

鸿蒙原生应用/元服务开发-消息通知整体说明

应用/元服务可以通过通知接口发送通知消息&#xff0c;终端用户可以通过通知栏查看通知内容&#xff0c;也可以点击通知来打开应用。 通知常见的使用场景&#xff1a;显示接收到的短消息、即时消息等。显示应用的推送消息&#xff0c;如广告、版本更新等。显示当前正在进行的事…

CCF模拟题 202309-1 坐标变换(其一)

问题描述 试题编号&#xff1a; 202309-1 试题名称&#xff1a; 坐标变换&#xff08;其一&#xff09; 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 512.0MB 问题描述&#xff1a; 对于平面直角坐标系上的坐标&#xff08;x,y&#xff09;&#xff0c;小P定义了一个包含…

代码随想Day60 | 84.柱状图中最大的矩形

84.柱状图中最大的矩形 这道题和接雨水遥相呼应&#xff0c;接雨水是求外部凹槽&#xff0c;这道题是求内部面积&#xff0c;这道题的整体思路是某一个元素&#xff0c;找到其左边的第一个小于该数的位置&#xff0c;右边的第一个小于该数的位置&#xff0c;然后以当前索引的高…

CodeWave智能开发平台--03--目标:应用创建--07供应商数据表格02

摘要 本文是网易数帆CodeWave智能开发平台系列的第10篇&#xff0c;主要介绍了基于CodeWave平台文档的新手入门进行学习&#xff0c;实现一个完整的应用&#xff0c;本文主要完成07供应商数据表格下 CodeWave智能开发平台的10次接触 CodeWave参考资源 网易数帆CodeWave开发…

202312 青少年软件编程等级考试Scratch一级真题(电子学会)

2023年12月 青少年软件编程等级考试Scratch一级真题&#xff08;电子学会&#xff09; 试卷总分数&#xff1a;100分 试卷及格分&#xff1a;60 分 考试时长&#xff1a;60 分钟 第 1 题 单选题 观察下列每个圆形中的四个数&#xff0c;找出规律&#xff0c;在括…

鸿蒙原生应用/元服务开发-短时任务

概述 应用退至后台一小段时间后&#xff0c;应用进程会被挂起&#xff0c;无法执行对应的任务。如果应用在后台仍需要执行耗时不长的任务&#xff0c;如状态保存等&#xff0c;可以通过本文申请短时任务&#xff0c;扩展应用在后台的运行时间。 约束与限制 申请时机&#xf…

使用Vite创建vue3工程

介绍 使用Vite构建工具&#xff0c;创建Vue3工程 示例 第一步&#xff1a;执行创建项目的命令&#xff0c;study-front-vue3是项目名称 npm init vite-app study-front-vue3第二步&#xff1a;进入项目文件夹&#xff0c;执行命令&#xff0c;安装模块 cd study-front-vue…

如何将ElementUI组件库中的时间控件迁移到帆软报表中

需求:需要将ElementUI组件库中的时间控件迁移到帆软报表中,具体为普通报表的参数面板中,填报报表的组件中,决策报表的组件与参数面板中。 这三个场景中分别需要用到帆软报表二开平台的ParameterWidgetOptionProvider,FormWidgetOptionProvider,CellWidgetOptionProvider开…

文献阅读:Sparse Low-rank Adaptation of Pre-trained Language Models

文献阅读&#xff1a;Sparse Low-rank Adaptation of Pre-trained Language Models 1. 文章简介2. 具体方法介绍 1. SoRA具体结构2. 阈值选取考察 3. 实验 & 结论 1. 基础实验 1. 实验设置2. 结果分析 2. 细节讨论 1. 稀疏度分析2. rank分析3. 参数位置分析4. 效率考察 4.…

什么是检索增强生成 (RAG)

什么是 RAG RAG&#xff0c;即检索增强生成&#xff0c;是一种将预训练的大型语言模型的功能与外部数据源相结合的技术。这种方法将 GPT-3 或 GPT-4 等 LLM 的生成能力与专用数据搜索机制的精确性相结合&#xff0c;从而形成一个可以提供细微响应的系统。 本文更详细地探讨了…