Dart语言与Java不一样的地方

一、数据类型

1.整数型Number
    只有两种类型:int,double;
    ~/:取整
2.字符串String
    创建   
        使用单/双引号创建    
        使用三个单/双引号创建多行字符串    
        使用r创建原始raw字符串(忽略转义字符)
    操作    
        *3:copy三次;    
        ${}:差值表达式;    
        判断相等:==
3.dynamic

二、运算符

1.赋值运算符:
    ??= 等号前表达式为空则取等号后,否则取等号前;
2.条件表达式:    
    三目运算符;    
    a??b:若a为空则取b,否则取a;

三、控制语句

1.for…in
2.switch_case:    
    continue:跳转标签,跳转到指定的case;

四、方法

1.方法特性:    
    1.方法也是对象,并且有具体类型Function;    
    2.返回值类型,参数类型均可省略;    
    3.箭头语法=> expr是{return expr;}的缩写,只适用于一个表达式;    
    4.方法都有返回值,若没指定,默认return null;
2.可选参数:    
    1.{}:可选命名参数;    
    2.[]:可选位置参数;    
    3.可选参数必须在具体参数后面;    默认参数值;
3.方法对象:    
    1.方法可作为对象赋值给其他变量;    
    2.方法可作为参数传递给其他方法;
4.闭包:    
    1.闭包是一个方法(对象);    
    2.闭包定义在其他方法内部;    
    3.闭包能够访问外部方法内的局部变量,并持有其状态;

五、面向对象

1.类与对象:

New可省略;    
属性与方法:   
    默认生成getter和setter方法;    
    方法不能被重载;    
类及成员可见性:     
    以library(库)为单位;    
    默认情况下,每个Dart文件就是一个库;    
    使用_表示库的私有性;

2.计算属性:

不存储;通过在属性类型及名称中间加get/set来声明;

3.构造方法:

语法糖this.:在构造方法之前对属性赋值;    
构造方法不能重载;    
多个构造方法:命名构造方法可实现,类名.方法

    常量构造方法

如果类是不可变状态,可以把对象定义为编译期常量;        
如果要将对象声明为常量,则需要常量构造方法;        
使用const声明构造方法,并且所有变量都为final;        
使用const声明对象,可以省略;

    工厂构造方法

在构造方法前加关键字factory声明工厂构造方法;        
工厂构造方法中可以返回对象;

4.初始化列表:

在构造方法体执行前执行;    
使用逗号分隔初始化表达式;
常用于设置final变量的值;
    Person.withMap(Map map):name=     map['name'],gender=map['gender’]{}

5.对象操作符:

条件成员访问:?.    
类型转换:as    
是否指定类型:is,is!    
级联操作:..
    person  ..name = 'luka'  ..gender = 'male'  ..work();

6.对象call方法:

若类实现了call()方法,则类的对象可作为方法使用;
    void call(name,gender){
        print('$name work$gender');}
    person('luka','female');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。