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

Flutter开发 dart语言基本语法

特点

Dart语言支持JIT与AOT。
Dart语言采用单线程模型。
Dart语言是强类型编程语言,但是允许弱类型语言式编程。

基本语法

1.变量和常量
变量
var、object、dynamic关键字或数据类型显式声明变量。

命名规则:

  • 变量名称必须由数字、字母、下划线或$组成;
  • 变量名开头不能是数字;
  • 变量名不能是保留字或关键字;
  • 变量名区分大小写;
void main() {//隐式声明var i = "hello word";print(i);var j; //定义变量时,未指定默认值,则该变量的数据类型是可变的。// j = 100;j = "hello";print(j);//用object定义变量,重新赋值时,类型可变Object k = 1;k = "qwe";print(k);//dynamic  重新赋值,类型可变dynamic m = 10;m = "asdadasd";print(m);//显式声明//整数int age = 90;//浮点类型double d = 2;//字符串String  str = "11111";
}

常量
使用final或者const定义常量。final或const定义的常量时必须初始化,初始化后的常量是只读的,不可变的。

  //常量final f = 10;print(f);const cc = 101;print(cc);final String str1 = "qwewqe";final double dd = 2.7;//final是正确的   const是错误的。// const 在“=”左边,声明的值一定是编译时常量。//当const用在“=”右边时,右边对象的整个状态值在编译时完全确定,并且对象被冻结且完全不可变。final date = DateTime.now();const date1 = DateTime.now();

2.数值类型

  1. Number(数值类型)
    dart语言中的包括int和double两种数据类型。
  var a = 10;//十进制10var h = 0xA;//十六进制10var d = 2.7;//十进制浮点型2.7//除号,算出来的值是double类型的int k = 10/2;//错double k2 = 10/2;//对
  1. string
  String str = "ha ha ha";String str2 = 'hello';//拼接String aStr = "hello";String bStr = " word";String cStr = aStr + bStr;String ddStr = "$aStr$bStr";print(aStr.indexOf("e"));//字符首次出现的位置  1print(aStr.lastIndexOf("e"));//字符最后出现的位置 1print(aStr.substring(1,3));//字符最后出现的位置 elprint(aStr.split("e"));//拆分字符串  [h, llo]print(aStr.toUpperCase());//转大写  HELLOprint(aStr.toLowerCase());//转小写  helloprint(aStr.startsWith("he"));//是否以he开头  trueprint(aStr.endsWith("lo"));//是否以lo开头  trueprint(aStr.contains("lo"));//是否包含lo  trueprint(aStr.replaceAll("he", "1111"));//替换he为111   1111lloprint(aStr.compareTo("abc"));//比较字符串 1表示左边的字符串大于右边,0相等,-1 小于

3.Boolean

 bool  flag = false;

4.List

  List names = ["张三", "李四", "王五"];List names2 = ["张三", "李四", "王五", 12];print(names.length); //长度 3print(names[1]); //李四//添加元素names.add("赵六"); //[张三, 李四, 王五, 赵六]print(names);//删除元素names.remove("李四"); //[张三, 王五, 赵六]print(names);//插入names.insert(1, 6666); //[张三, 6666, 王五, 赵六]print(names);//查找元素int i = names.indexOf(6666); // 1print(i);//将数组元素转化为由特定符号分割print(names.join("@"));//张三@6666@王五@赵六

5.Set
Dart语言中Set表示一个元素唯一且无序的集合,不能通过索引下标获取数据元素。

  var s = Set();s.add(1);s.add("张三");s.add(true);//list转set,会去掉重复的元素List<int> lists = [1, 2, 3, 4, 3, 2, 5];Set ss = lists.toSet(); // {1, 2, 3, 4, 5}print(ss);

6.Map

  Map person = {"id": "001", "name": "zhang san", "age": "25"};//输出所有的值print(person.values); //(001, zhang san, 25)//输出所有的键print(person.keys); //(id, name, age)//输出name的值print(person["name"]); //zhang san//添加键值对Map weight = {"weight": "120"};person.addAll(weight);print(person); //{id: 001, name: zhang san, age: 25, weight: 120}//删除键值对person.remove("name");//{id: 001, age: 25, weight: 120}print(person);

7.List、Set、Map的常用方法

forEach遍历

  //遍历List list = ["苹果","南瓜","西瓜"];list.forEach((element) {print(element);});I/flutter ( 2677): 苹果
I/flutter ( 2677): 南瓜
I/flutter ( 2677): 西瓜

map遍历用于修改元素的值

 List list = ["苹果", "南瓜", "西瓜"];var ll = list.map((e) {return e + "1";});print(ll);I/flutter ( 2677): (苹果1, 南瓜1, 西瓜1)

where用于过滤list或set中的数据元素,并返回一个集合。

  //保留大于3的值List list = [100, 1, 0, 2, 300, 150];var ll = list.where((element) {return element > 3;});print(ll);I/flutter ( 2677): (100, 300, 150)

any用于判断list或set中的数据元素只要有一个满足条件,返回值为true。

  List list = [100, 1, 0, 2, 300, 150];var has = list.any((element) {return element > 10;});print(has);var has1 = list.any((element) {return element > 1000;});print(has1);I/flutter ( 2677): true
I/flutter ( 2677): false

every用于判断list或set中的数据元素全部满足条件,返回值为true。

  List list = [100, 1, 0, 2, 300, 150];var f = list.every((element) {return element > 100;});print(f);var f2 = list.every((element) {return element > -1;});print(f2);I/flutter (20829): false
I/flutter (20829): true
http://www.dtcms.com/a/312124.html

相关文章:

  • Java 集合框架: LinkedHashSet
  • Redis7 String类型数据
  • 梦幻花瓣雨
  • spring学习笔记二
  • MC0364魔法链路
  • 全排列(回溯算法)
  • OLTP,OLAP,HTAP是什么,数据库该怎么选
  • 力扣-230.二叉搜索树中第K小的元素
  • 【学习笔记】MySQL技术内幕InnoDB存储引擎——第6章 锁
  • Amazon Q Developer:AI 增强编码生产力的未来
  • Arpg第二章——流程逻辑
  • 第六章第二节 定时器定时中断 定时器外部时钟
  • 电子病历:现代HIS系统不可或缺的核心组成部分
  • 12:java学习笔记:多维数组1
  • yolo为什么可以作为目标检测框架?它的底层原理是什么?
  • 客流人数统计准确率↑22%:陌讯动态追踪融合算法实战解析
  • 【高等数学】第七章 微分方程——第七节 常系数齐次线性微分方程
  • OSPF综合实验(一)
  • 分享一个可以测试离线服务器性能的脚本
  • 八股训练--JUC
  • 包装类、日期等常用类型
  • C语言数据结构(5)双向链表
  • 深入剖析Nacos:云原生架构的基石
  • Python编程基础与实践:Python基础数据类型入门
  • 中国工程院郑裕国院士确认出席:2025第五届生物发酵营养源高峰论坛生物发酵展
  • CMake基础使用指南
  • QtC++ 调用 tesseract开源库 搭配 Opencv 实现文字识别:从tesseract库基本介绍到实际应用实现
  • 【华为OD机试】计算图形面积
  • 关于Egret引擎的一些思考
  • 单位长度上的RC参数