Dart 入门学习笔记

Author Avatar
Klein 12月 31, 2018
  • main方法是固定写法,是程序入口
  • print 方法可以在控制台输出内容

数据类型

变量与常量

变量:

  • 使用 var 声明变量,可赋予不同类型的值
  • 未初始化时,默认值为 null
  • 使用 final 声明一个只能赋值一次的变量

常量:

  • 使用 const 声明常量
  • 使用 const 声明的必须是编译期常量

数值类型

内置类型:

数值类型-Number

使用 num 声明数值类型
使用 Int 声明整型
使用 double 声明 浮点型

数值类型操作:
运算符:

- `+` 
- `-`
- `*`
- `/` 
- `~/`
  取整
- `%`
  取余

常用属性:

  • isNaN
    NaN = 0.0/0.0
  • isEven
  • isOdd
    常用方法:
  • abs()
    绝对值
  • round()
    四舍五入
  • floor()
    不大于操作数的最大整数(向下取整)
  • ceil()
    不小于操作数的最小整数(向上取整)
  • toInt()
    浮点型转为整型
  • toDouble()
    整型转为浮点型

字符串-String

字符串创建:

  • 使用单引号、双引号创建字符串
  • 使用三个引号或者双引号创建多行字符串
  • 使用r创建原始raw字符串
    1
    2
    3
    4
    5
    6
    7
    String str = 'Hello \n Dart'
    String str1 = 'Hello \n Dart'
    print(str)
    // Hello
    // Dart
    print(str1)
    // Hello \n Dart

字符串操作:

  • 运算符:
    • +
      拼接字符串
    • *
    • 复制并拼接
    • ==
      判断字符串是否相等
    • []
      下标去字符串,类似于JavaScript字符串数组
  • 插值表达式:${expression}
    用法类似 JavaScript
    不过如果表达式只有一个变量可简写为$var,省略{}

  • 常用属性:

    • length
    • isEmpty
    • isNotEmpty
  • 常用方法:

    • contains() 判断是否包含特定字符串 subString() 截取指定位置的字符串,类似JavaScript
    • startsWith() 判断是否以特定字符串为开始 endWith() 判断是否以特定字符串为结束
    • indexOf() 从头开始取字符串下标 lastIndexOf() 从尾部开始取字符串下标
    • toLowerCase() 转化为小写 toUpperCase() 转化为大写
    • trim() tyimLeft() trimRight()
    • split() 类似JavaScript replaceXXX()

      布尔类型-Boolean

      使用 bool 声明布尔类型

      列表-List

      创建List: var list = [1,2,3];
      创建不可变的List: var list = const [1,2,3];
      构造创建List: var list = new List();

常用操作:

  • [] 获取和修改 length
  • add() insert()
  • remove() clear()
  • indexOf() lastIndexOf()
  • sort() sublist()
  • shuffle() asMap() forEach()

    键值对-Map

    创建Map: var language = {'first': 'Dart', 'second': 'Java'};
    创建不可变Map: var language = const {'first': 'Dart', 'second': 'Java'};
    构建创建: var language=new Map();

常用操作:

  • [] 获取和修改 length
  • isEmpty() isNotEmpty()
  • keys,values
  • containsKey(), constainsValue()
  • remove()
  • forEach()

dynamic

Runes

Symbols

运算符

算术运算符

  • +
  • -
  • *
  • /
  • ~/

关系运算符

  • ==
    判断内容是否相同
  • !=
  • >
  • <
  • >=
  • <=

逻辑运算符

  • !
  • &&
  • ||

赋值运算符

基础运算符:

  • =
  • ??=

符合运算符:

  • +=
  • -=
  • *=
  • /=
  • %=
  • ~/=

条件表达式

  • 三目运算符: condition ? expr1 : expr2
  • ??运算符: expr1??expr2

控制语句

条件语句:

  • if
  • if...else if
    - if...else if...else

for语句:

  • for
  • for...in

while语句:

  • while
  • do...while

终止循环:break
跳出当前循环: continue

switch...case

  • 比较类型: num, String, 编译期常量,对象,枚举
  • 非空的case语句必须有一个break
  • default处理默认情况
  • continue跳转标签

Function

方法定义:

可选参数:

  • 可选命名参数:{param1,param2}
    命名参数必须在可选参数后面
  • 可选位置参数:[param1,param2]

默认参数值:

  • 使用=在可选参数指定默认值
  • 默认值只能是编译期的常量

方法对象:

  • 方法可作为对象赋值给其他变量
  • 方法可作为参数传递给其他方法

匿名方法:

  • 可赋值给变量,通过变量进行调用。
  • 可在其他方法中直接调用或传递给其他方法