当前位置: 首页 > news >正文

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

在这里插入图片描述

在深入了解 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 的舞台,简单、有趣、清晰才是主角!

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

相关文章:

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

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

中国光伏展

中国光伏展是中国最大的光伏产业展览会,每年在国内举办一次。该展览会汇集了国内外光伏行业的领先企业和专业人士,展示最新的光伏技术、产品和解决方案。 中国光伏展旨在促进光伏行业的发展和创新,提升光伏产业的国际竞争力。展览会涵盖了光伏…...

Nacos的统一配置管理

Nacos的统一配置管理 一 项目添加nacos和bootstrap依赖二 nacos客户端配置2.1 创建命名空间2.2 创建配置 三、配置bootstrap.yml四 不同环境配置切换步骤一:nacos中添加开发、测试配置步骤二:指定bootstrap.yml中spring.profiles.active参数值 扩展链接 …...

SpringBoot项目docker镜像生成

1. 本文思路 拉取基础镜像基于镜像创建容器在容器中,安装所需依赖部署脚本提交容器,生成新的镜像编写Dockerfile,添加启动命令,生成最终镜像导出镜像 2. 操作步骤 2.1 基础环境 # 拉取镜像 docker pull centos:7.6.1810 # 运行…...

JDBC初体验(二)——增、删、改、查

本课目标 理解SQL注入的概念 掌握 PreparedStatement 接口的使用 熟练使用JDBC完成数据库的增、删、改、查操作 SQL注入 注入原理:利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行能力,它可以通过在…...

Eva.js是什么(互动小游戏开发)

前言 Eva.js 是一个专注于开发互动游戏项目的前端游戏引擎。 易用:Eva.js 提供开箱即用的游戏组件供开发人员立即使用。是的,它简单而优雅! 高性能:Eva.js 由高效的运行时和渲染管道 (Pixi.JS) 提供支持,这使得释放设…...

监听 beforeunload 事件,阻止页面刷新导致的信息丢失

尤其是一个有编辑器的页面,可以监听 windwo.beforeunload 事件,在用户试图关闭当前标签页的时候提醒用户,内容可能会丢失。 Window:beforeunload 事件 - Web API 接口参考 | MDN...

Java 常见缓存详解以及解决方案

一. 演示Mybatis 一级缓存 首先我们准备一个接口 两个实现的方法, 当我们调用这个queryAll()方法时我们需要调用selectAll()方法来查询数据 调用此接口实现效果 这个时候我们就可以发现了问题,我们调用方法…...

Golang 交叉编译之一文详解

博客原文 文章目录 Golang 中的交叉编译不同操作系统间的编译Linux 下编译windowsmacos windows 下编译Linuxmacos macos 下编译Linuxwindows 不同架构下的编译amd64x86 参考 Golang 中的交叉编译 在 Golang 中,交叉编译指的是在同一台机器上生成针对不同操作系统或…...

最新ThinkPHP版本实现证书查询系统,实现批量数据导入,自动生成电子证书

前提:朋友弄了一个培训机构,培训考试合格后,给发证书,需要一个证书查询系统。委托我给弄一个,花了几个晚上给写的证书查询系统。 实现功能: 前端按照姓名手机号码进行证书查询证书信息展示证书展示&#x…...

windows安装运行Apache James(基于spring的版本)

下载地址 下载列表 https://james.apache.org/download.cgi 直接下载基于spring版本 https://www.apache.org/dyn/closer.lua/james/server/3.8.0/james-server-app-3.8.0-app.zip 设置签名 解压,并切换到james-server-spring-app-3.8.0目录下,在powe…...

Elasticsearch 基本概念:快速入门指南【记录】

简单记录,后续整理补充 介绍: Elasticsearch是一个分布式、可扩展、实时的搜索和分析引擎,建立在开源搜索库Lucene之上。它提供了强大的全文搜索功能和复杂的分析能力,适用于各种场景,包括应用日志分析、电子商务搜索…...

【JVM 基础】类字节码详解

JVM 基础 - 类字节码详解 多语言编译为字节码在JVM运行Java字节码文件Class文件的结构属性从一个例子开始反编译字节码文件字节码文件信息常量池方法表集合类名 再看两个示例分析try-catch-finallykotlin 函数扩展的实现 源代码通过编译器编译为字节码,再通过类加载…...

【算法】基础算法001之双指针

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.数组分块&#xf…...

[力扣 Hot100]Day2 字母异位词分组

题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 出处 思路 这题有点考阅读理解,意思就是把输入数组中的所含字母相同但顺序不同的单词放到同…...

记一次 easyswoole 热重载失效复盘 grpc扩展惹的祸

首先看一下运行环境 swoole version 4.8.11 php version 7.4.33 easyswoole version 3.4.6 在easyswoole 的入口文件 如下&#xff1a; <?php namespace EasySwoole\EasySwoole; use App\WebSocket\WebSocketEvents; use Ap…...

存储过程从表中获取数据库名称

---------------业务数据库信息 CREATE TABLE [dbo].[app_erp_datbabase_conf] ( [id] [int] IDENTITY(1,1) NOT NULL, [database_type] [varchar](200) NOT NULL, [database_name] [varchar](200) NOT NULL, [create_time] [datetime] NULL, [modify_t…...

.NET 反射的介绍和简单应用

什么是反射&#xff1f; 反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型&#xff0c;这些信息在设计时是未知的&#xff0c;这种能力类似于后期绑定。反射还支持的更高级的行为&#xff0c;能在运行时动态创建新类型&#xff0…...

在drawio中使用BPMN2.0绘制详细的业务流程图和编排模型

在drawio中使用BPMN2.0绘制详细的业务流程图和编排模型 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址draw.io或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功…...

GO——defer函数

定义 当前函数返回之前执行传入函数的一个关键字 执行时间 当前函数返回前执行 常用于 关闭文件描述符关闭数据库链接解锁资源 原理 参考&#xff1a;https://draveness.me/golang/docs/part2-foundation/ch05-keyword/golang-defer/ 后调用的 defer 函数会先执行&…...

保姆级教程:在RK3588开发板上编译并加载Xilinx XDMA PCIe驱动(含完整Makefile解析)

RK3588与FPGA的PCIe通信实战&#xff1a;XDMA驱动编译与深度优化指南 当RK3588遇上FPGA&#xff0c;PCIe通信便成为两者之间高速数据交互的核心桥梁。作为一款广泛应用于边缘计算和嵌入式AI场景的ARM处理器&#xff0c;RK3588的PCIe 3.0 x4接口能够提供接近4GB/s的理论带宽&am…...

intv_ai_mk11用于IT运维文档:错误日志分析、解决方案生成与报告撰写

intv_ai_mk11用于IT运维文档&#xff1a;错误日志分析、解决方案生成与报告撰写 1. 为什么IT运维需要AI助手 每天处理海量错误日志、编写故障报告、寻找解决方案是IT运维人员的日常工作痛点。传统方式下&#xff0c;工程师需要&#xff1a; 手动筛选关键错误信息在知识库中反…...

Cursor 高级技巧:@符号、Chat 模式与多文件编辑

前言 经过前两天的学习&#xff0c;你已经掌握了 Cursor 的基本用法&#xff0c;能用 CmdK 做单文件修改&#xff0c;用 Tab 自动补全代码。但 Cursor 真正强大的地方&#xff0c;在于它构建了一套以 AI 为中心的上下文感知系统——让 AI 不再是"盲写"&#xff0c;而…...

亚马逊AMC数据驱动时代,选对ERP才能玩转精准投放

随着亚马逊广告生态的持续升级&#xff0c;AMC&#xff08;Amazon Marketing Cloud&#xff09;作为高阶数据分析工具&#xff0c;正成为头部卖家精细化运营的“标配”。AMC能够整合品牌在亚马逊站内外多渠道的广告与消费者行为数据&#xff0c;但其核心价值在于数据的打通与应…...

OpenClaw 企业级实战:Java 微服务集成 AI 智能体,自动处理业务流

文章目录当你的微服务开始"自己思考"OpenClaw 到底是个啥&#xff1f;别被概念吓住架构设计&#xff1a;让 Java 微服务和 AI 智能体"合伙创业"整体架构草图为什么非得用 Java&#xff1f;Python 不香吗&#xff1f;实战准备&#xff1a;Spring AI 与 Open…...

SenseVoice Small模型可解释性:注意力权重可视化与关键语音片段定位

SenseVoice Small模型可解释性&#xff1a;注意力权重可视化与关键语音片段定位 1. 项目背景与意义 语音识别技术在日常生活中的应用越来越广泛&#xff0c;从智能助手到会议转录&#xff0c;从语音输入到多媒体内容处理&#xff0c;都离不开高效准确的语音转文字服务。Sense…...

SEO 推广与传统广告推广有什么区别

SEO 推广与传统广告推广有什么区别 在当今的数字化时代&#xff0c;企业如何有效地推广自己的产品和服务成为了一个亟待解决的问题。两种常见的推广方式——SEO 推广与传统广告推广——各有优劣&#xff0c;企业需要根据自身的需求和市场环境进行选择。本文将详细探讨SEO推广和…...

defendnot完全指南:如何通过WSC API轻松禁用Windows Defender

defendnot完全指南&#xff1a;如何通过WSC API轻松禁用Windows Defender 【免费下载链接】defendnot An even funnier way to disable windows defender. (through WSC api) 项目地址: https://gitcode.com/gh_mirrors/de/defendnot defendnot是一个通过WSC API禁用Win…...

轻舟体重管理大模型:赋能减重全病程管理,构建智能体重健康生态

在“健康中国2030”战略深入推进的背景下&#xff0c;慢性病防控与全民体重管理已成为公共卫生体系的重要议题。随着肥胖及相关代谢性疾病发病率持续上升&#xff0c;传统的体重干预模式已难以满足全人群、全生命周期的健康管理需求。在此趋势下&#xff0c;基于人工智能技术的…...

OpenClaw未来展望:Qwen3-14B与本地自动化的5个进化方向

OpenClaw未来展望&#xff1a;Qwen3-14B与本地自动化的5个进化方向 1. 从工具到伙伴&#xff1a;OpenClaw的现状与定位 去年冬天&#xff0c;当我第一次在本地MacBook上部署OpenClaw时&#xff0c;它还是个需要手动配置JSON文件才能调用本地模型的"半成品"。如今看…...