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

Dart 学习笔记(一)

一、数据类型

  1. 数值类型
    • int:表示整数类型,例如:int num = 10;。在 Dart 中,int 类型是有范围限制的,具体取决于平台,但通常在 -2^63 到 2^63 - 1 之间。
    • double:表示双精度浮点数类型,如double pi = 3.14;
  2. 字符串类型(String)
    • 可以使用单引号或双引号来定义字符串,例如:String str1 = 'Hello';String str2 = "World";
    • 可以使用字符串插值,将变量或表达式嵌入到字符串中,如:String name = "Alice"; print('My name is $name.');
  3. 布尔类型(bool)
    • 只有 truefalse 两个值,用于表示条件判断的结果,例如:bool isTrue = true;
  4. 列表类型(List)
    • 类似于数组,可以存储多个相同类型或不同类型的元素。定义方式如下:
      • List<int> numbers = [1, 2, 3, 4, 5];(指定元素类型为 int
      • List<String> names = ['Bob', 'Charlie'];(指定元素类型为 String
      • 也可以使用 var 关键字让 Dart 自动推断类型:var list = [1, 'two', 3.0];
  5. 集合类型(Set)
    • 集合中的元素是唯一的,无序的。定义方式:
      • Set<int> set1 = {1, 2, 3, 4};
      • Set<String> set2 = {'apple', 'banana', 'apple'}; // 只会保留一个 'apple'
  6. 映射类型(Map)
    • 是键值对的集合,用于存储关联数据。例如:
      • Map<String, int> ages = {'Alice': 20, 'Bob': 22};,其中 String 是键的类型,int 是值的类型。
      • 可以通过键来访问对应的值:print(ages['Alice']);

二、条件表达式

  1. 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.');
      }
      
  2. 三目运算符(?:)
    • 语法:condition? expression1 : expression2
    • conditiontrue 时,返回 expression1 的值,否则返回 expression2 的值。例如:
      int num = 7;
      String result = num % 2 == 0? 'Even' : 'Odd';
      print(result); // 输出 'Odd'
      

三、循环语句

  1. for 循环
    • 基本语法:
      for (initialization; condition; increment) {// 循环体
      }
      
    • 例如,打印 1 到 5 的数字:
      for (int i = 1; i <= 5; i++) {print(i);
      }
      
  2. while 循环
    • 语法:
      while (condition) {// 循环体
      }
      
    • 例如,计算 1 到 10 的和:
      int sum = 0;
      int i = 1;
      while (i <= 10) {sum += i;i++;
      }
      print(sum);
      
  3. do-while 循环
    • 语法:
      do {// 循环体
      } while (condition);
      
    • while 循环不同的是,do-while 循环至少会执行一次循环体,然后再判断条件。例如:
      int num = 5;
      do {print(num);num--;
      } while (num > 0);
      

四、条件语句

  1. if 语句:单独的 if 语句用于在条件为 true 时执行特定代码块,如前面 if-else 语句中的 if 部分示例。
  2. 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');
      }
      

五、循环控制

  1. break 语句
    • 用于立即终止循环。例如,在一个查找特定元素的循环中,找到后就可以使用 break 退出循环:
      List<int> numbers = [1, 3, 5, 7, 9];
      for (int num in numbers) {if (num == 7) {print('Found 7.');break;}
      }
      
  2. continue 语句
    • 用于跳过当前循环迭代的剩余部分,直接进入下一次迭代。例如,打印 1 到 10 中的奇数:
      for (int i = 1; i <= 10; i++) {if (i % 2 == 0) {continue;}print(i);
      }
      

相关文章:

Dart 学习笔记(一)

一、数据类型 数值类型 int&#xff1a;表示整数类型&#xff0c;例如&#xff1a;int num 10;。在 Dart 中&#xff0c;int 类型是有范围限制的&#xff0c;具体取决于平台&#xff0c;但通常在 -2^63 到 2^63 - 1 之间。double&#xff1a;表示双精度浮点数类型&#xff0c…...

安防视频监控平台Liveweb视频汇聚管理系统管理方案

智慧安防监控Liveweb视频管理平台能在复杂的网络环境中&#xff0c;将前端设备统一集中接入与汇聚管理。国标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文件名&#xff1a;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、表格内容靠左上下居中&#xff08;排除首行&#xff09; 1、表格首行居中 说明&#xff1a; 遇到错误将进行捕获&#xff0c;然后继续处理下一个表格 宏&#xff1a; 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 库&#xff0c;请自行下载&#xff01; 如果没有安装 odbc for sqlite 驱动&#xff0c;可以使用 godking.conn.driver.sqlite3.install() 安装。 也可以在此下载自行安装&#xff1a;http://www.chengxu.online/show.asp?softid267 1、将js…...

数据结构学习笔记 双向链表

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

深度学习作业十 BPTT

目录 习题6-1P 推导RNN反向传播算法BPTT. 习题6-2 推导公式(6.40)和公式(6.41)中的梯度&#xff0e; 习题6-3 当使用公式(6.50)作为循环神经网络的状态更新公式时&#xff0c; 分析其可能存在梯度爆炸的原因并给出解决方法&#xff0e; 习题6-2P 设计简单RNN模型&#xff0…...

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&#xff0c;同时需要安装neo4j5.15版本&#xff0c;使用jdk17. 1.mac或者liunx&#xff0c;找到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. 安装 背景&#xff1a;kanzi的节点绑定信息是黑色的&#xff0c;看起来非常费劲&#xff0c;如果能代码高亮显示&#xff0c;对开发会很有帮助。 美化前 美化后 …...

利用tablesaw库简化表格数据分析

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

记录一下,解决js内存溢出npm ERR! code ELIFECYCLEnpm ERR! errno 134 以及 errno 9009

项目是个老项目&#xff0c;依赖包也比较大&#xff0c;咱就按正常流程走一遍来详细解决这个问题&#xff0c;先看一下node版本&#xff0c;我用的是nvm管理的&#xff0c;详细可以看我的其他文章 友情提醒&#xff1a;如果项目比较老&#xff0c;包又大&#xff0c;又有一些需…...

【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…...

有钱才懂爱:赚到钱你再去谈男女关系,你会发现,择偶逻辑都变了。 没钱的时候,你看到的是一堆条件:房子、车子、工作、家境。 有钱了之后,那些条件你都自己有了

先谋生,再谋爱:有钱之后,我才看懂了男女关系的真相 目录 先谋生,再谋爱:有钱之后,我才看懂了男女关系的真相 没钱的时候,你谈的从来都不是爱情,是“生存合伙” 钱是最好的过滤器,它能帮你滤掉所有的“功能性需求” 底层的“忠诚”,很多时候只是“没有选择”的同义词…...

2026产品专员学习数据分析的价值与路径

一、数据分析对产品专员的核心价值数据分析能力帮助产品专员量化用户行为、验证假设并优化产品决策。通过数据驱动的方法&#xff0c;减少主观猜测&#xff0c;提升需求优先级判断的准确性。掌握基础分析工具&#xff08;如Excel、SQL&#xff09;和可视化工具&#xff08;如Ta…...

app评论区升级成功

经过我10个小时的激情工作&#xff0c;评论区终于是可以运行起来了&#xff0c;而且我升级了系统&#xff0c;让代码更加直观和可维护。什么你说不好看&#xff0c;等会就好看了。...

Newbie-Guideline数据库实战:SQL查询与ER模型设计的完整教程

Newbie-Guideline数据库实战&#xff1a;SQL查询与ER模型设计的完整教程 【免费下载链接】Newbie-Guideline 컴퓨터과학/공학 신입생 및 비전공자 신입을 위한 지침서 项目地址: https://gitcode.com/gh_mirrors/ne/Newbie-Guideline Newbie-Guideline是面向计算机科学/…...

免费开源!掌握AMD Ryzen处理器深度调试:SMUDebugTool终极指南

免费开源&#xff01;掌握AMD Ryzen处理器深度调试&#xff1a;SMUDebugTool终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项…...

UE5实战:手把手教你用AIController和PathFollowingComponent实现NPC智能移动(含源码解析)

UE5智能寻路实战&#xff1a;从零构建NPC导航系统 在虚幻引擎5的游戏开发中&#xff0c;AI角色的自主移动能力直接影响着游戏体验的真实感。许多开发者初次接触UE5的AI系统时&#xff0c;往往会被NavigationSystem、AIController和PathFollowingComponent等模块的复杂关系所困扰…...

polars导入csv文件时指定列数据类型

polars导入csv文件时指定列数据类型schema {column1: pl.Int64,column2: pl.Float64,column3: pl.Utf8}df pl.read_csv(data.csv, schemaschema)def pddaoru_csv(filedir):order_5G[承建方,厂家,市名称,统计局区县,数据时间,小区名称,基站ID,小区ID,小区覆盖类别,频段,带宽,小…...

别再死记硬背了!用Python/JavaScript/C++对比理解‘整型变布尔’的底层逻辑

别再死记硬背了&#xff01;用Python/JavaScript/C对比理解‘整型变布尔’的底层逻辑 在编程语言的学习过程中&#xff0c;类型系统是最基础也最容易被忽视的部分。特别是当开发者从一门动态类型语言转向静态类型语言时&#xff0c;经常会遇到一些"反直觉"的类型转换…...

终极指南:使用免费开源工具SMUDebugTool解锁AMD Ryzen处理器全部性能 [特殊字符]

终极指南&#xff1a;使用免费开源工具SMUDebugTool解锁AMD Ryzen处理器全部性能 &#x1f680; 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power T…...

FPGA设计实战:别再乱用复位了!同步、异步与异步复位同步释放的Verilog代码避坑指南

FPGA设计实战&#xff1a;复位电路设计的黄金法则与Verilog避坑指南 在FPGA开发的世界里&#xff0c;复位电路就像交响乐团的指挥——它决定了整个系统能否从混沌走向有序。许多工程师往往低估了复位设计的重要性&#xff0c;直到项目后期遭遇难以追踪的亚稳态问题或时序收敛失…...