Dart
augfun
旧博客遗失,新博客凑活着用吧
展开
-
Dart18.元数据(注解)-@deprecated
所有的 Dart 代码都可以使用: @deprecated 和 @override。mata1.dartimport 'todo.dart';main() { dynamic tv = new Television(); tv.activate(); tv.turnOn(); tv.turnOff(); tv.doSomething();}class Television { @deprecated void activate() { turnOn()原创 2020-06-22 00:52:50 · 846 阅读 · 0 评论 -
Dart17.递归生成器
yield* 以指针的方式传递递归对象,而不是整个同步对象。ex:void main(){ //递归生成器 //同步 var it1 = getSyncRecursiveGenerator(5).iterator; while (it1.moveNext()) { print(it1.current); } print('========================================'); //异步 getAsyncRecursiveGe原创 2020-06-22 00:47:27 · 341 阅读 · 0 评论 -
Dart16.同步生成器,异步生成器
使用sync*,返回的是Iterable对象。yield会返回moveNext为true,并等待 moveNext 指令。调用getSyncGenerator立即返回Iterable对象。调用moveNext方法时getSyncGenerator才开始执行。ex:generator.dartmain(){ var it = getSyncGenerator(5).iterator; while (it.moveNext()) { print(it.current); }原创 2020-06-22 00:35:08 · 500 阅读 · 0 评论 -
Dart15.异步-scheduleMicrotask()
ex:import 'dart:async';void main(){ testFuture();}void testScheduleMicrotask(){ scheduleMicrotask(() => print('s1')); new Future.delayed(new Duration(seconds: 1), () => print('s2')); new Future(() => print('s3')).then((_) { pri原创 2020-06-21 23:46:30 · 652 阅读 · 0 评论 -
Dart14:异步-Event Queue和Microtask Queue
Dart中有2中队列:Event Queue和Microtask Queue异步-Event Queue和Microtask Queue优先全部执行完Microtask Queue中的Event。 直到Microtask Queue为空时,才会执行Event Queue中的Event。 当Event Looper正在处理Microtask Queue中的Event时候,Event Queue中的Event就停止了处理了,此时App不能绘制任何图形,不能处理任何鼠标点击,不能处理文件IO等等。原创 2020-06-21 22:24:00 · 505 阅读 · 0 评论 -
Dart13.异步-then,catchError,whenComplete
ex:import 'dart:async';void main(){ new Future(() => futrueTask()) .then((i) => 'abc$i') .then((m) => print('$m')) .then((_) => new Future.error('出错了')) .whenComplete(() => print('whenComplete')) .catchE原创 2020-06-21 21:48:52 · 1372 阅读 · 0 评论 -
Dart12.载入第三方库
1.修改pubspec.yaml文件,再点击pub getdependencies: flutter: sdk: flutter cupertino_icons: ^0.1.0 dio: ^2.1.0如下:2.调用lib.dart:import "package:dio/dio.dart";void main() { getHttp();}void getHttp() async { try { Response response =原创 2020-06-21 19:19:35 · 345 阅读 · 0 评论 -
Dart11.引入库
libraries.dart//import 'dart:math'; //载入核心库//import 'package:dio/dio.dart'; //载入第三方库//import 'mylib1.dart' as lib1; //载入文件//import 'mylib2.dart' as lib2; //如果两个库有冲突的标识符,可以为其中一个或两个库都指定前缀//import 'mylib1.dart' as lib1 show Test; //只载入库的某些部分//impor原创 2020-06-20 01:35:25 · 253 阅读 · 0 评论 -
Dart10.Mixin多继承
1.子类没有重写超类A方法的前提下,如果2个或多个超类拥有相同签名的A方法,那么子类会以继承的最后一个超类中的A方法为准。2.如果子类自己重写了A方法则以本身的A方法为准。Mixin.dartmain() { Bicycle().transport(); Motorcycle().transport(); Car().transport(); //四轮木制脚踏车 WoodenCar().transport();}//交通工具类,拥有运输功能abstract class原创 2020-06-20 01:33:27 · 269 阅读 · 0 评论 -
Dart9.构造函数
class.dartimport 'dart:math';main() { //普通构造函数 var p = new Point(1, 1); //new 可省略 var point = Point(1, 2); print(p); // 输出 Point(x = 1, y = 1) Point p1; print(p1.runtimeType); //可以使用Object类的runtimeType属性,获取对象的类型 此时的类型是null //命名构造函数 p原创 2020-06-18 01:51:43 · 432 阅读 · 0 评论 -
Dart8.Exception
exception.dartmain() { /// ---------------------------------异常的抛出throw-------------------------------- //抛出Exception对象// throw new FormatException('格式异常'); //抛出Error对象// throw new NullThrownError(); //抛出任意非null对象// throw '这是一个异常'; ///原创 2020-06-18 01:51:01 · 170 阅读 · 0 评论 -
Dart7.Operator
operator.dartmain() { //Operators 操作符 /// ---------------------------------后缀操作符 ?.-------------------------------- // 条件成员访问 和 . 类似,但是左边的操作对象不能为 null,例如 foo?.bar 如果 foo 为 null 则返回 null,否则返回 bar 成员 String a; print(a?.length); //输出 null /原创 2020-06-18 01:16:56 · 314 阅读 · 0 评论 -
Dart6.function
function.dartmain() {//返回值类型可以省略 //普通函数定义 int add(int x, int y) { return x + y; } print(add(1, 2)); //输出 3 //所有的函数都返回一个值。如果没有指定返回值,则 默认把语句 return null; 作为函数的最后一个语句执行。 testFunc() {} ; print(testFunc()); //输出 null //可省略类型(不建议)原创 2020-06-17 02:13:01 · 281 阅读 · 0 评论 -
Dart5.Set
Set•set1.difference(set2):返回set1集合里有但set2里没有的元素集合•set1.intersection(set2):返回set1和set2的交集•set1.union(set2):返回set1和set2的并集•set1.retainAll():set1只保留某些元素(要保留的元素要在原set中存在)set.dartvoid main(){ /// ---------------------------------Sets集合:Set-------原创 2020-06-17 01:59:06 · 183 阅读 · 0 评论 -
Dart4.List
List•Dart中可以直接打印list包括list的元素,List也是对象。java中直接打印list结果是地址值•Dart中List的下标索引和java一样从0开始•和java一样支持泛型。•有增删改查,支持倒序,自带排序、洗牌,可使用+将两个List合并list.dartvoid main(){ /// ---------------------------------Lists列表(数组):List-------------------------------- p原创 2020-06-17 01:53:58 · 223 阅读 · 0 评论 -
Dart3.Numbers,Strings,Booleans
String•Dart 字符串是 UTF-16 编码的字符序列,可以使用单引号或者双引号来创建字符串•可以使用三个单引号或者双引号创建多行字符串对象。•可以使用 r 前缀创建”原始raw”字符串。•可以在字符串中使用表达式: ${expression},如果表达式是一个标识符,可以省略 {},如果表达式的结果为一个对象,则 Dart 会调用对象的 toString() 函数来获取一个字符串。bool•bool对象未初始化的默认值是nullbytes.dartmain(){原创 2020-06-17 01:43:36 · 166 阅读 · 0 评论 -
Dart2.var dynamic Object变量
1.var dynamic Objectvar:如果没有初始值,可以变成任何类型dynamic:动态任意类型,编译阶段不检查类型Object:动态任意类型,编译阶段检查检查类型区别:唯一区别 var 如果有初始值,类型被锁定没有初始化的变量默认值都是null。一切皆对象,对象的默认值是nullvariable.dartvoid main(){ //未初始化变量声明var dynamic Object dynamic data; data = 1; data = 'a原创 2020-06-17 01:21:41 · 222 阅读 · 1 评论 -
Dart1. const和final的区别|||class 和单例
test_demo.dartvoid main(List<String> args) { print('hello word sys'); const ls1 = [1, 2, 3, 4, 5]; //ls1[2] = 3; //const类型,理面的子数据不能修改,这样写直接报错 const ls2 = [1, 2, 3, 4, 5]; print(identical(ls1, ls2)); final ls3 = [1, 2, 3, 4, 5]; ls3[原创 2020-06-15 00:42:26 · 330 阅读 · 0 评论 -
VS code调试dart
VS code下载地址:http://www.downza.cn/soft/276250.htmlDart 插件是用来语法提示! Code Runner 是方便来运行 dart 文件(前提是必须安装 dart 环境,如何安装,请移驾官网),使用方法:在 vsCode 中右击文件,选择 Run code,输出里面就会显示文件输出信息...原创 2020-06-15 00:06:08 · 1416 阅读 · 0 评论