一边开发一边学习,会时不时添加新内容进来。
1.var:变量。一旦赋值,类型就会确定。
2.dynamic和object:
相同:声明的变量可以在后期改变赋值类型。
不同:dynamic声明的对象编译器会提供所有可能的组合。
Object 声明的对象只能使用object的属性和方法。
例如: dynamic a; a.length不会报错
Object b; b.length会报错
3.final和const:
使用过程中不会被修改的变量。
const:在编译时就已经固定。
final:在第一次使用时被初始化。
提示:实例变量可以是final但不能是const。
4.类型:int,double,String,List,Map,bool,Set, Rune,Symbol
${expression}:字符换内嵌表达式
使用连续三个单引号或者三个双引号实现多行字符串对象的创建。
类型转换:
String -> int int.parse(‘1’);
String -> double double.parse(‘1.1’);
int -> String 1.toString();
double -> String 3.1415.toStringAsFixed(2);
5.函数
类型声明可以省略。
=>expr语法是{return expr;}的简写
可选参数:命名可选参数{}。
位置可选参数:[]
默认参数值
..级联调用
匿名函数
6.赋值运算符
使用 = 为变量赋值。 使用 ??= 运算符时,只有当被赋值的变量为 null 时才会赋值给它。
关键字
abstract:定义抽象类,抽象类不能进行实例化。
factory :当执行构造函数并不总是创建这个类的一个新实例时,则使用 factory 关键字。工厂构造函数无法访问 this。
implements:每个类都隐式的定义了一个接口,接口包含了该类所有的实例成员及其实现的接口。 如果要创建一个 A 类,A 要支持 B 类的 API ,但是不需要继承 B 的实现, 那么可以通过 A 实现 B 的接口。
一个类可以通过 implements 关键字来实现一个或者多个接口, 并实现每个接口要求的 API。
网友评论