Dart 学习笔记(一)
一、数据类型
- 数值类型
- int:表示整数类型,例如:
int num = 10;
。在 Dart 中,int
类型是有范围限制的,具体取决于平台,但通常在 -2^63 到 2^63 - 1 之间。 - double:表示双精度浮点数类型,如
double pi = 3.14;
。
- int:表示整数类型,例如:
- 字符串类型(String)
- 可以使用单引号或双引号来定义字符串,例如:
String str1 = 'Hello';
或String str2 = "World";
。 - 可以使用字符串插值,将变量或表达式嵌入到字符串中,如:
String name = "Alice"; print('My name is $name.');
。
- 可以使用单引号或双引号来定义字符串,例如:
- 布尔类型(bool)
- 只有
true
和false
两个值,用于表示条件判断的结果,例如:bool isTrue = true;
。
- 只有
- 列表类型(List)
- 类似于数组,可以存储多个相同类型或不同类型的元素。定义方式如下:
List<int> numbers = [1, 2, 3, 4, 5];
(指定元素类型为int
)List<String> names = ['Bob', 'Charlie'];
(指定元素类型为String
)- 也可以使用
var
关键字让 Dart 自动推断类型:var list = [1, 'two', 3.0];
- 类似于数组,可以存储多个相同类型或不同类型的元素。定义方式如下:
- 集合类型(Set)
- 集合中的元素是唯一的,无序的。定义方式:
Set<int> set1 = {1, 2, 3, 4};
Set<String> set2 = {'apple', 'banana', 'apple'}; // 只会保留一个 'apple'
- 集合中的元素是唯一的,无序的。定义方式:
- 映射类型(Map)
- 是键值对的集合,用于存储关联数据。例如:
Map<String, int> ages = {'Alice': 20, 'Bob': 22};
,其中String
是键的类型,int
是值的类型。- 可以通过键来访问对应的值:
print(ages['Alice']);
- 是键值对的集合,用于存储关联数据。例如:
二、条件表达式
- if-else 语句
- 基本语法:
if (condition) {// 当条件为 true 时执行的代码块 } else {// 当条件为 false 时执行的代码块 }
- 例如:
int num = 10; if (num > 5) {print('The number is greater than 5.'); } else {print('The number is less than or equal to 5.'); }
- 基本语法:
- 三目运算符(?:)
- 语法:
condition? expression1 : expression2
- 当
condition
为true
时,返回expression1
的值,否则返回expression2
的值。例如:int num = 7; String result = num % 2 == 0? 'Even' : 'Odd'; print(result); // 输出 'Odd'
- 语法:
三、循环语句
- for 循环
- 基本语法:
for (initialization; condition; increment) {// 循环体 }
- 例如,打印 1 到 5 的数字:
for (int i = 1; i <= 5; i++) {print(i); }
- 基本语法:
- while 循环
- 语法:
while (condition) {// 循环体 }
- 例如,计算 1 到 10 的和:
int sum = 0; int i = 1; while (i <= 10) {sum += i;i++; } print(sum);
- 语法:
- do-while 循环
- 语法:
do {// 循环体 } while (condition);
- 与
while
循环不同的是,do-while
循环至少会执行一次循环体,然后再判断条件。例如:int num = 5; do {print(num);num--; } while (num > 0);
- 语法:
四、条件语句
- if 语句:单独的
if
语句用于在条件为true
时执行特定代码块,如前面if-else
语句中的if
部分示例。 - if-else if-else 语句
- 用于多个条件判断,语法如下:
if (condition1) {// 当 condition1 为 true 时执行的代码块 } else if (condition2) {// 当 condition1 为 false 且 condition2 为 true 时执行的代码块 } else {// 当所有前面条件都为 false 时执行的代码块 }
- 例如:
int score = 75; if (score >= 90) {print('A'); } else if (score >= 80) {print('B'); } else if (score >= 70) {print('C'); } else if (score >= 60) {print('D'); } else {print('F'); }
- 用于多个条件判断,语法如下:
五、循环控制
- break 语句
- 用于立即终止循环。例如,在一个查找特定元素的循环中,找到后就可以使用
break
退出循环:List<int> numbers = [1, 3, 5, 7, 9]; for (int num in numbers) {if (num == 7) {print('Found 7.');break;} }
- 用于立即终止循环。例如,在一个查找特定元素的循环中,找到后就可以使用
- continue 语句
- 用于跳过当前循环迭代的剩余部分,直接进入下一次迭代。例如,打印 1 到 10 中的奇数:
for (int i = 1; i <= 10; i++) {if (i % 2 == 0) {continue;}print(i); }
- 用于跳过当前循环迭代的剩余部分,直接进入下一次迭代。例如,打印 1 到 10 中的奇数:
相关文章:
Dart 学习笔记(一)
一、数据类型 数值类型 int:表示整数类型,例如:int num 10;。在 Dart 中,int 类型是有范围限制的,具体取决于平台,但通常在 -2^63 到 2^63 - 1 之间。double:表示双精度浮点数类型,…...

安防视频监控平台Liveweb视频汇聚管理系统管理方案
智慧安防监控Liveweb视频管理平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。国标GB28181协议视频监控/视频汇聚Liveweb平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、…...
十八(GIT)、GIT基本命令、axios别名方法、黑马就业数据平台(axios基地址、轻提示函数、注册及登录功能)
1. GIT 1.1 Git配置用户信息 1. Git配置用户信息 git config --global user.name "用户名" git config --global user.email 邮箱地址 2. 查看配置 git config --list (信息太多使用 输入 q 退出) 1.2 本地初始化Git仓库 1. 通常有两种获取Git仓库的方式: 将 尚未进…...

Linux查看系统基本信息
执行命令 chmod x system_info.sh && ./system_info.sh文件名:system_info.sh #!/bin/bash# 获取系统版本 SYSTEM_VERSION$(cat /etc/os-release | grep ^PRETTY_NAME | cut -d -f 2 | xargs)# 获取CPU数量 CPU_COUNT$(grep -c ^processor /proc/cpuinfo…...
Word处理表格的一些宏
目录 1、表格首行居中2、表格内容靠左上下居中(排除首行) 1、表格首行居中 说明: 遇到错误将进行捕获,然后继续处理下一个表格 宏: Sub 表格首行居中()Dim tbl As tableOn Error Resume Next 错误时继续执行下一个…...

将本地项目文件推送到Git仓库中
一、在GitLab中创建新项目 1. 创建新项目 2. 打开本地文件. 3. 项目git文件操作 初始化本地Git仓库 git init关联远程仓库 git remote add origin 远程仓库地址将文件到Git暂存区 git add .提交项目文件到Git本地仓库 git commit -m "提交内容说明"将本地…...
2024-12-05OpenCV高级-滤波与增强
OpenCV高级-滤波与增强 文章目录 OpenCV高级-滤波与增强1-OpenCV平滑滤波1. 均值滤波 (cv2.blur())2. 高斯滤波 (cv2.GaussianBlur())3. 中值滤波 (cv2.medianBlur())4. 双边滤波 (cv2.bilateralFilter())总结 2-OpenCV边缘检测1. Sobel算子 (cv2.Sobel())2. Canny边缘检测 (cv…...
vue3中 axios 发送请求 刷新token 封装axios
service.js 页面 import axios from axios // 创建axios实例 const instance axios.create({baseURL: http://gcm-test.jhzhkj.cn:8600/h5card/,timeout: 5000, // 请求超时时间headers: {get: {Content-Type: application/x-www-form-urlencoded},post: {Content-Type: appl…...

aardio - 汉字笔顺处理 - json转sqlite转png
本代码需要最新版 godking.conn 库,请自行下载! 如果没有安装 odbc for sqlite 驱动,可以使用 godking.conn.driver.sqlite3.install() 安装。 也可以在此下载自行安装:http://www.chengxu.online/show.asp?softid267 1、将js…...

数据结构学习笔记 双向链表
……接上文 6. 双向链表 6.1 特性 逻辑结构:线性结构 存储结构:链式结构 操作:增删改查 建立双向链表结构体: //双向链表的节点定义 typedef int datatype;typedef struct node_t{datatype data;//数据域 struct node_t *next;//…...

深度学习作业十 BPTT
目录 习题6-1P 推导RNN反向传播算法BPTT. 习题6-2 推导公式(6.40)和公式(6.41)中的梯度. 习题6-3 当使用公式(6.50)作为循环神经网络的状态更新公式时, 分析其可能存在梯度爆炸的原因并给出解决方法. 习题6-2P 设计简单RNN模型࿰…...
html+css+JavaScript实现轮播图
html+css+JavaScript实现轮播图 实现思路 要实现一个轮播图功能,我们需要HTML来构建结构,CSS来设计样式,以及JavaScript来添加交互功能。下面我将分别分析这三个部分是如何协同工作来实现轮播图的。 HTML - 结构 HTML部分定义了轮播图的基本结构,包括图片列表、指示器和…...
Python+onlyoffice 实现在线word编辑
onlyoffice部署 version: "3" services:onlyoffice:image: onlyoffice/documentserver:7.5.1container_name: onlyofficerestart: alwaysenvironment:- JWT_ENABLEDfalse#- USE_UNAUTHORIZED_STORAGEtrue#- ONLYOFFICE_HTTPS_HSTS_ENABLEDfalseports:- "8080:8…...
PostgreSQLt二进制安装-contos7
1、安装依赖 yum install -y gcc readline readline-devel zlib-devel net-tools perl wget numactl libicu-devel bison flex openssl-devel pam pam-devel libxml2 libxml2-devel libxslt libxslt-devel openldap openldap-devel 2、创建目录 mkdir -p /data/postgresql/{…...

Neo4j启动时指定JDK版本
项目使用jdk1.8,同时需要安装neo4j5.15版本,使用jdk17. 1.mac或者liunx,找到neo4j目录bin的下neo4j文件 设置JAVA_HOME: 2.windows,找到bin下面的neo4j.bat文件 set "JAVA_HOME{JDK文件目录}" 重启后生效。...

kanzi3.6.10 窗口插件-美化绑定内容
文章目录 1. 创建kanzi窗口插件2. 业务逻辑3. 关键代码3.1 获取绑定信息3.2 解析绑定3.3 动态生成富文本控件 4. 安装 背景:kanzi的节点绑定信息是黑色的,看起来非常费劲,如果能代码高亮显示,对开发会很有帮助。 美化前 美化后 …...

利用tablesaw库简化表格数据分析
tableaw是处理表格数据的优秀工具。它提供了一组强大而灵活的功能,使操作、分析和可视化数据表变得容易。在这篇博文中,我们将介绍tableaw的主要特性、如何使用这些特性,以及如何使用tableaw处理表格数据的一些示例。 tablesaw简介 tableaw…...

记录一下,解决js内存溢出npm ERR! code ELIFECYCLEnpm ERR! errno 134 以及 errno 9009
项目是个老项目,依赖包也比较大,咱就按正常流程走一遍来详细解决这个问题,先看一下node版本,我用的是nvm管理的,详细可以看我的其他文章 友情提醒:如果项目比较老,包又大,又有一些需…...

【JavaWeb后端学习笔记】MySQL的数据查询语言(Data Query Language,DQL)
MySQL DQL 1、DQL语法与数据准备1.1 DQL语法1.2 数据准备 2、基础查询2.1 查询指定字段2.2 查询返回所有字段2.3 给查询结果起别名2.4 去除重复记录 3、条件查询3.1 条件查询语法3.2 条件查询案例分析 4、分组查询4.1 分组查询语法4.2 分组查询案例分析 5、排序查询5.1 排序查询…...
360 最新Android面试题及参考答案
一个 activity 只能有一个进程么【对进程的理解】 在 Android 中,一个 Activity 并不只能有一个进程。进程是操作系统进行资源分配和调度的一个独立单位。 从原理上来说,Android 系统允许开发者通过在 AndroidManifest.xml 文件中的<activity>标签设置 android:process…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...