美文网首页
Dart语法总结

Dart语法总结

作者: IAM121 | 来源:发表于2019-12-30 20:39 被阅读0次

    1 字符串创建

    1.1 使用单引号,双引号创建字符串

    1.2 使用三个引号或双引号创建多行字符串

    1.3 使用r创建原生raw字符串

    2 字符串操作

    2.1 运算符操作
    运算符 : + * == []

    2.2 插值表示
    $(expression)

    2.3 常用属性:
    length isEmpty isNotEmpty

    2.4 常用方法
    contains(), subString(), startsWith(), endsWith(), indexOf(), lastIndexOf()
    toLowerCase(), toUpperCase(), trim(), trimLeft(), trimRight(), split(), replaceXXX()

    3 List创建

    3.1 创建List:
    var list = [1,2,3]

    3.2 创建不可变的List
    var list = const[1,2,3]

    3.3 构造创建
    var list = new List()

    3.4 常用操作
    Length add insert remove clear indexOf lastIndexOf sort sublist shuffle asMap forEach

    4 Map 创建 (key 和 value可以是任何值= )

    4.1 创建Map
    var language = {'first':'Dart', 'second':'java'}

    4.2 创建不可变Map
    var language = const {'first':'Dart', 'second':'java'}

    4.3 构建 map
    Var language = new Map ()

    4.4 常用操作
    Length iSEmpty isNotEmpty Keys values containsKey containsValue forEach

    4.5 Dynamic 和 Object
    dynamic 和 Object 声明的变量初始化后,变量的类型仍可改变

    5 运算符

    5.1 加 减 乘 除 取整 取余(+ - * / ~/ %)

    5.2 关系运算符
    == != > < >= <= ( == 的判断内容是否相同使用)

    5.3 赋值运算符
    5.3.1 基础运算符:
    =,??=
    举例 a = 2 b= 3 a ??= b (若a为空,则将b赋值给a,如果a 不为空,则不用将b赋值给a)

    5.3.2 符号运算符:
    +=, -= , *=, /= , %= , ~/=

    5.4 条件表达式

    5.4.1 三目运算符 condition ? exper1 : exper2

    5.4.2 ??运算符 exper1 ?? exper2

    6 控制流语句

    6.1 条件语句
    for for..in

    6.2 While 语句
    while循环 do…while循环
    Break 终止喜循环 continue 结束本次循环

    6.3 witch …case 语句
    比较类型: num 、String 、编译期常量、对象、枚举
    非空case必须有一个break

    7 方法

    7.1 方法定义

           /**
            返回类型 方法名(参数1,参数2,...)
             方法体
               retrun 返回值
           */
    

    7.2 方法特性
    方法也是对象,并且有具体类型Function

    7.3 返回值类型、参数类型都可省略

    7.4 箭头语法: => expr 是{return expr;} 缩写。只适用于一个表达式

    7.5 方法都有返回值。如果么有指定,默认return null最后一句

    7.6 可选参数

          可选命名参数{param1, param2,…}
      
    
          可选位置参数 [param1, param2,…]
    

    如果存在具体参数,可选参数声明,必须在参数后面

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

    7.8 方法对象
    方法可作为对象赋值给其他变量

    image.png

    方法可作为参数传递给其他方法


    image.png

    7.9 匿名方法

           /**
            (参数1,参数2,...)
             方法体...
               retrun 返回值
           */
    

    可赋值给变量,通过变量进行调用


    image.png

    可在其他方法中直接调用或传递给其他方法


    image.png
    image.png

    7.10 闭包
    闭包是一个方法(对象)

    闭包定义在其它方法内部

    闭包能够被访问 包方法内的局部变量,并持有其状态

    image.png
    image.png

    8 面向对象

    8.1 类与对象

    8.1.1 使用关键字class声明一个类

    8.1.2 使用关键字new创建一个对象,new可省略

    8.1.3 所有对象都继承于Object类

    8.2 属性与方法

    8.2.1 属性默认会生成getter与setter方法

    8.2.2 使用final声明的属性只有getter方法

    8.2.3 属性和方法通过 . 访问

    8.2.4 方法不能被重载

    8.3 类以及成员可见性

    8.3.1 Dar中的可见性以library(库)为单位

    8.3.2 默认情况下,每个Dart文件就是一个库

    8.3.3 使用_表示库的私有性

    8.3.4 使用import导入库

    8.4 计算属性
    8.41 计算属性的值是通过计算而来的,本身不存储值

    8.4.2 计算属性值,其实是通过计算转换到其它实例变量

    image.png

    8.5 构造方法

    8.5.1 如果没有自定义的构造方法,就会有一个默认的构造方法

    8.5.2 如果存在自定义构造方法,则默认构造方法无效

    8.5.3 构造方法不能重载


    image.png

    (传入的参数直接赋值到对象的属性中去)


    image.png

    8.6 命名构造方法

    8.6.1.使用命名构造方法,可以实现多个构造方法

    8.6.2.使用类名.方法的形式实现

    image.png

    8.7 常量构造方法

    8.7.1 如果类是不可变状态,可以把对象定义为编译时常量

    8.7.2 使用const声明构造方法,并且所有变量都为final

    8.7.3 使用const声明对象,可以省略

    image.png

    8.8 工厂构造方法

    8.8.1 工厂构造方法类似于设计模式中的工厂模式

    8.8.2 在构造方法前添加关键字factory实现一个工厂构造方法

    8.8.3 在工厂构造方法中可返回对象

    image.png

    8.9 初始化列表

    1.初始化列表在构造方法体执行前执行

    2.使用逗号分隔初始化表达式

    3.初始化列表常用于设置final变量的值


    image.png

    8.10 静态成员

    8.10.1 使用static关键字来实现类级别的变量和函数

    8.10.2 静态成员不能访问非静态成员,非静态成员可以访问静态成员

    8.10.3 类中的常量需要使用static const声明

    image.png

    8.11 对象操作符

    8.11.1 条件成员访问: ?.

    8.11.2 类型转换: as

    8.11.3 是否制定类型: is, is!

    8.11.4 级联操作: ..

    image.png
    image.png

    8.12 对象call方法
    如果类实现了call()方法,则该类的对象可以作为方法使用


    image.png

    9 面向对象扩展

    9.1 继承

    9.1.1 使用关键字 extends继承一个类

    9.1.2 子类会继承父类可见的属性和方法,不会继承构造方法

    9.1.3 子类能够复写父类的方法,getter和setter方法

    9.1.4 单继承,多态性

    image.png

    9.2 继承中的构造方法

    9.2.1 子类 的构造方法默认会调用父类的无名无参构造方法

    9.2.2 如果父类没有无名无参数构造方法,则需要显示调用父类构造方法

    9.2.3 在构造方法参数后使用:显示调用父类构造方法

    image.png
    image.png

    9.3 构造方法执行顺序

    9.3.1 父类的构造方法在子类构造方法体开始执行的位置调用

    9.3.2 如果有初始化列表,初始化列表会在父类构造方法之前执行

    image.png

    10 抽象类

    10.1 抽象类使用abstract表示,不能直接被创建对象

    10.2 抽象方法不用abstract修饰,无实现

    10.3 抽象类可以没有抽象方法

    10.4 有抽象方法的类一定得声明为抽象类

    11 接口

    11.1 类和接口是统一的,类就是接口

    11.2 每个类都隐式的定义了一个包含所有实例成员的接口

    11.3 如果是复用已有类的实现,使用继承(extends)

    11.4 如果只是使用已有类的外在行为,使用接口(implements)


    image.png

    12 Mixins

    12.1 Mixins类似于多继承,是在多类继承中重用了一个类代码的方式

    12.2 作为Mixin的类不能有显示声明构造方法

    12.3 作为Mixin的类只能继承自Object

    12.4 使用关键字with连接一个或者多个mixin


    image.png

    两种写法是一样的


    image.png

    13 操作符覆写

    13.1 覆写操作符需要在类中定义

           /**
            返回类型 operator 操作符(参数1,参数2,...)
             方法体
               retrun 返回值
           */
    

    13.2 如果覆写 == ,还需要覆写对象的hashCode getter方法


    image.png
    image.png
    image.png

    14 枚举

    14.1枚举是一种有穷序列集的数据类型
    14.2 使用关键字enum定义一个枚举
    14.3 常用于代替常量,控制语句等


    image.png

    14.4 Dart枚举特性

    14.4.1 index从0开始,依次累加

    14.4.2 不能指定原始值

    14.4.3 不能添加方法

    15 泛型

    15.1 dart中类型是可选的,可使用泛型限定类型

    15.2 使用泛型能够有效的减少代码重复


    image.png

    15.3 泛型的使用
    15.3.1 类的泛型
    15.3.2 方法的泛型


    image.png
    image.png

    相关文章

      网友评论

          本文标题:Dart语法总结

          本文链接:https://www.haomeiwen.com/subject/bsmpoctx.html