Dart相关笔记
dart with多继承
with也被称之为mixins
mixins使用的条件,随着Dart版本一直在变,这里讲的是Dart2.x中使用mixins的条件:
- 只能继承自Object,不能继承其他类
- 不能有构造函数
- 3、一个类可以mixins多个mixins类
- 是一种全新的特性
class A {
String info="this is A";
void printA(){
print("A");
}
}
class B {
void printB(){
print("B");
}
}
class C with A,B{
}
void main(){
var c=new C();
c.printA();
c.printB();
print(c.info);
}
mixins实例类型
案例 :mixins的类型就是其超类的子类型。
class A {
String info="this is A";
void printA(){
print("A");
}
}
class B {
void printB(){
print("B");
}
}
class C with A,B{
}
void main(){
var c=new C();
print(c is C); //true
print(c is A); //true
print(c is B); //true
// var a=new A();
// print(a is Object);
}
在这其中c是子类,而AB类是父类,C类也可以称之为超类的子类型
async和await
async :表示异步,是让方法变成异步
await : 同步,是等待异步方法执行完成
这两个关键字的使用只需要记住两点:
- 只有async方法才能使用await关键字调用方法
- 如果调用别的async方法必须使用await关键字
void main() async{
var result = await testAsync();//等待异步执行完成后获取Hello async
print(result);
}
//异步方法
testAsync() async{
return 'Hello async';
}
如果在main方法获取异步方法而不使用await去获取这是会出现错误的。可以自己试一试!
Dart导入第三方包
在Dart中包是托管到,Pub包管理系统库
从下面网址找到要用的库
比如导入 http相关的库 ,通过https://pub.dev/packages/网站找到对应的http库
在这个网站中可以查到被人写好的一些库,也称之为模块
包的导入
第一步、首先需要创建一个.yanlpubspec.yaml文件,内容如下
name: xxx //名字,可以随意去
description: A new flutter module project. //描述
dependencies: //依存关系
http: ^0.12.0+2
date_format: ^1.0.6
将此包用作库
1. Depend on it
将此添加到包的pubspec.yaml文件中:
dependencies:
http: ^0.12.2
2. 安装
您可以从命令行安装软件包:
with pub:
$ pub get
with Flutter:
$ flutter pub get
或者,您的编辑器可能支持pub get或Flutter pub get。 查看您的编辑器文档以了解更多信息。
3. 导入
现在,在Dart代码中,您可以使用:
import 'package:http/http.dart';