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

本文共 2545 字,大约阅读时间需要 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/

你可能感兴趣的文章
nodejs 开发websocket 笔记
查看>>
nodejs 的 Buffer 详解
查看>>
NodeJS 的环境变量: 开发环境vs生产环境
查看>>
nodejs 读取xlsx文件内容
查看>>
nodejs 运行CMD命令
查看>>
Nodejs+Express+Mysql实现简单用户管理增删改查
查看>>
nodejs+nginx获取真实ip
查看>>
nodejs-mime类型
查看>>
NodeJs——(11)控制权转移next
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
nodejs下的express安装
查看>>
nodejs与javascript中的aes加密
查看>>
nodejs中Express 路由统一设置缓存的小技巧
查看>>
nodejs中express的使用
查看>>
Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型
查看>>
Nodejs中的fs模块的使用
查看>>
NodeJS使用淘宝npm镜像站的各种姿势
查看>>
NodeJs入门知识
查看>>
nodejs包管理工具对比:npm、Yarn、cnpm、npx
查看>>