Dart学习笔记二

运算符

算术运算符+,-,*,/,~/,%;

递增递减++var,var++,--var,var--;

关系运算符==,!=,>,<,>=,<=;

逻辑运算符!,&&,||;

赋值运算符:=,??=

还有复合运算符;条件表达式:三目运算符:condition?expr1:expr2,??运算符:expr1??expr2

控制语句

if语句;

switch..case语句(比较类型num,String,编译期常量,对象,枚举;continue跳转标签);

for循环,for...in循环;

while循环,do...while循环;

终止循环break,跳出当前循环continue;

方法

定义:返回类型 name(参数){return 返回值},

方法也是对象,并且有具体的类型Function,返回值,参数都可省略,

=>只适用一个表达式,没指定返回值,则默认返回null;

可选命名参数{p1,p2},调用必须写键,可选位置参数[p1,p2],可选参数声明必须在具体参数后面;

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

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

匿名方法(参数){retuen 返回值},可作为上述对象的特性;

闭包是一个方法(对象),定义在其它方法内部,能够访问外部方法内的局部变量,并持有状态;

枚举

是一种有穷序列集的数据类型,使用enum定义一个枚举,常用于代替常量,控制语句等,index从0开始,依次累加,不能指定原始值,不能添加方法;

dart中类型是可选的,使用泛型限定类型(常用在抽象类),能够有效的减少代码重复;

可用在类,方法上(方法名后面)

面向对象

类与对象,class声明一个类,new创建一个对象,new可省略,

所有对象继承于Object类,属性默认会生成getter和settter方法,使用final声明的属性只有getter方法,通过.访问,方法不能被重载.

dart中的可见性以library(库)为单位,默认情况下每一个dart文件就是一个库,使用_表示库的私有性,使用import导入库;

计算属性的值是通过计算而来的,本身不存储值,计算属性赋值是通过计算转换到其它实例变量(set,get);

如果没有自定义构造方法,则会有默认的构造方法,若存在则无效,构造方法也不能重载,可以使用命名构造方法,可实现多个构造方法,使用类名.方法的形式实现;

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

工厂构造方法:类似于设计模式中的工厂模式,在构造方法前添加关键字factory实现一个工厂构造方法,并可返回一个对象;

初始化列表:在构造方法执行之前执行,使用逗号分隔初始化表达式,常用于设置final变量的值;

静态成员:使用static来实现类级别的变量和函数,静态成员不能访问非静态成员,非静态成员可以访问静态成员,类中的常量需要使用static const声明;

对象操作符:条件成员的访问使用?.可避免空指针,类型转换as,是否指定类型is,is!,级联操作..;

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容