Dart语言
- 所有东西都是对象
- 所有对象都是强类型
- 在运行编译前,指定数据类型和编译时的常量,能提高编译速度
- 统一入口是main函数
- 表示私有特性是在函数或变量前面加_
- 支持async/await异步特性
关键字
特别的有
var
with与Mixin继承机制有关
factory
类型
变量用var定义,不初始化,则后期可以任意赋值
若用确定的类型定义,则必须用同类型赋值
* 一切变量初始化都是null
final定义的变量只能赋值一次,值作用于自身
例:
final ls1=1;
ls1=2;
不可以,直接提示错误
final ls1 = [1, 2, 3];
ls1[1] = 8;
可变。说明它的子元素是可变的
num类是int和double的基类
常量
const不可变,定义后需要立刻赋值
-
集合
var ls=List(); var ls=<String>[];(最好这种); var personInfo=Map<String,String>(); var personInfo=<String,String>{};(最好这种)
-
枚举
enum ResponseState{}
Dart内置库
dart:async
dart:collection
dart:convert
dart:core
dart:html
dart:io
dart:math
dart:svg
Mixin 的继承机制
abstract class Animal {
void say();
}
class PersonInfo {
void showInfo() {
print('this is show person info');
}
}
class Person extends Animal with PersonInfo {
//无论是extends、implements还是mixin,优先级最高的是在具体类中的方法。
void showInfo() {
print('person say');
}
@override
void say() {
print('say person');
}
}
在main中
var p = Person();
p.showInfo();
会输出
person say
因为无论什么具体类方法优先级最高
extends、implements、with优先级比较
with>implement>extends
多个with的话最后一个with优先级高
总结
这些只是最基本的语法,学习Dart还有很长一段路要走
附上一篇大佬的Dart的Mixin机制文章
https://kevinwu.cn/p/ae2ce64/#场景