博客
关于我
Dart基础
阅读量:270 次
发布时间:2019-03-01

本文共 2542 字,大约阅读时间需要 8 分钟。

Dart语言教程

入门

Dart是一种现代化的通用性语言,旨在提高开发效率。与Java类似,Dart的主程序入口方法为 void main()

数据类型

1. Number

  • intdoubleNumber 的子类。
  • floorceil 分别用于向下取整和向上取整。
  • NaN 表示“非数”,用于表示无法比较的数值。
  • round 方法用于四舍五入。
  • ~/ 方法用于除法取整。

2. var、final、const

  • var 用于声明可以赋值多种类型的变量。
  • final 用于声明一个只能赋值一次的变量。
  • const 用于声明一个编译期常量。

3. String

  • 使用单引号或双引号包围字符串支持多行文本。
  • \n\t 分别表示换行和制表符。
  • 使用 r 前缀可以避免字符串转义。
  • 字符串比较使用 ==
  • ${} 表达式用于字符串插值,只有一项时可省略括号。
  • str * 10 方法用于字符串复制。
  • endsWithstartsWith 检查字符串是否以特定字符结尾。
  • split 方法按给定字符分隔字符串,返回数组。
  • 字符串连接使用 + 方法,注意只能连接字符串。
  • int.parse()double.parse() 用于将字符串转换为数字。
  • toString() 方法将数字转换为字符串,toStringAsFixed() 用于保留小数位数。
  • substring 方法用于截取字符串,若省略起始索引则从当前位置开始截取到末尾。

4. bool

  • truefalse 分别表示布尔值。

5. List

  • Dart中的数组与列表 (List) 是一致的。
  • indexOf() 方法用于查找元素位置,返回下标或 -1 表示不存在。
  • sort() 方法用于排序,默认按 ASCII 表序排序。
  • add(), insert(), remove(), removeAt(), removeLast() 等方法用于列表操作。
  • sublist() 方法用于截取列表子列表。
  • addAll() 方法用于合并两个列表。
  • fold()reduce() 方法用于对列表元素进行连续操作。
  • map() 方法用于遍历列表元素并生成新列表。
  • forEach() 方法用于遍历列表元素,适用于回调函数。
  • clear() 方法用于清空列表。
  • elementAt() 方法用于获取指定索引位置的元素。

运算符

1. 算术运算符

  • +, -, *, /, ~/ 分别用于加、减、乘、除和除法取整。
  • ++-- 分别用于前后缀增量操作。

2. 逻辑运算符

  • &&|| 分别用于布尔逻辑与和或运算。
  • ! 用于逻辑非运算。

3. 赋值运算符

  • +=, -=, *=/= 分别用于加、减、乘、除。
  • ~/= 用于除法取整。

4. 关系运算符

  • >, <, >=, <=, != 分别用于比较运算。
  • 字符串比较使用 ==,结果与内容相关。

5. 条件运算符

  • ? 用于条件表达式的简化形式。
  • ?? 用于 null 检查,前者为空则执行后者。

流程控制

1. if

  • Dart的 if 语句与其他语言类似。

2. for 和 for in

  • for 循环用于遍历可迭代对象。
  • for in 方法用于遍历枚举对象。

3. while 和 do while

  • whiledo while 循环用于基于条件的循环。

4. switch case

  • switch 语句用于多分支选择,支持 num, String, 编译器常量、对象和枚举类型的比较。
  • case 语句必须非空,且必须有 break 语句。
  • default 用于处理默认情况。
  • continue 用于跳转到下一个 casedefault 语句。

方法

1. 函数定义

  • Dart的方法可以是对象,具有具体的类型。
  • 方法可以有返回值和参数,默认方法返回 null
  • 箭头语法 (=>) 用于表达式返回。
  • 可选参数可以放在方法定义的括号中,使用 = 指定默认值。
  • 方法可以作为对象赋值给变量或传递给其他方法。

2. 方法对象

  • 方法可以作为对象赋值给变量,调用方式为 variable.methodName().
  • 方法作为参数传递时直接使用方法名,无需调用。

3. 匿名方法

  • 匿名方法可以赋值给变量,通过变量调用。
  • 也可以传递给其他方法。

4. 闭包

  • 闭包是定义在方法内的方法。
  • 闭包可以访问外部方法内的局部变量并持有其状态。

面向对象

1. 类与对象

  • 使用 class 关键字定义类。
  • 使用 new 创建对象,new 可选。
  • 所有对象继承自 Object 类。
  • 属性默认生成 gettersetter 方法。
  • final 属性只能赋值一次。
  • 属性访问方式为 .

2. 计算属性

  • 计算属性通过方法计算值,不存储实际值。
  • 计算属性可以将实例变量转换为其他类型值。

3. 构造方法

  • 类没有定义构造方法时,默认有一个无参数的构造方法。
  • 定义构造方法后,默认构造方法失效。
  • 构造方法可以有命名参数和初始化列表。
  • 初始化列表用于设置 final 属性值。

4. 工厂构造方法

  • 使用 factory 关键字定义工厂构造方法。
  • 工厂构造方法返回对象实例。

5. 初始化列表

  • 初始化列表在构造方法之前执行。
  • 初始化列表用于设置 final 属性值。

6. call()

  • 如果类实现了 call() 方法,其对象可以作为方法使用。

正则表达式

void main() {    RegExp exp = new RegExp(r"^[0-9]\d*$");    print(exp.hasMatch('12646546154165'));}

其他补充

1. typedef

  • 使用 typedef 为类型定义一个别名。
  • 示例:typedef num Add(num x, num y);

2. 私有属性

  • Dart中的私有属性表示为带有下划线的属性,如 _property
  • 私有属性只在当前文件内可访问。

总结

Dart语言具有简洁的语法和强大的特性,适合开发高效、灵活的应用程序。如果需要更深入的学习,可以通过以上教程进一步探索 Dart 的魅力。

转载地址:http://mxka.baihongyu.com/

你可能感兴趣的文章
Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
查看>>
Node 裁切图片的方法
查看>>
Node+Express连接mysql实现增删改查
查看>>
node, nvm, npm,pnpm,以前简单的前端环境为什么越来越复杂
查看>>
Node-RED中Button按钮组件和TextInput文字输入组件的使用
查看>>
Node-RED中Switch开关和Dropdown选择组件的使用
查看>>
Node-RED中使用html节点爬取HTML网页资料之爬取Node-RED的最新版本
查看>>
Node-RED中使用JSON数据建立web网站
查看>>
Node-RED中使用json节点解析JSON数据
查看>>
Node-RED中使用node-random节点来实现随机数在折线图中显示
查看>>
Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
查看>>
Node-RED中使用node-red-contrib-image-output节点实现图片预览
查看>>
Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
查看>>
Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
查看>>
Node-RED中使用range范围节点实现从一个范围对应至另一个范围
查看>>
Node-RED中实现HTML表单提交和获取提交的内容
查看>>
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>