![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Dart
Applicaton
这个作者很懒,什么都没留下…
展开
-
Dart 08 函数别名 Typedef
Typedefs在 Dart 中,函数也是对象,就像字符和数字对象一样。使用 typedef 为函数起一个别名别名可以用来声明字段及返回值类型。当函数类型分配给变量时,typedef会保留类型信息。请考虑以下代码,代码中未使用 typedef :main() { TestFun testFun = TestFun(fun); print(testFun.f is Function);// print(testFun.f is fun);// 这句话将产生异常}//原创 2020-06-19 18:56:00 · 538 阅读 · 0 评论 -
dart 07.3 并发多线程
什么是isolatedart 虽然是一个单线程语言 但是不代表他不支持多线程并发在dart中线程不叫线程叫做isolate(隔离区)所有的代码都运行在这类似于线程但不共享内存的独立工作程序,仅通过消息进行通信。每个isolate 都有一个完整的事件循环机制,每个隔离区都有自己的内存堆,确保每个隔离区的状态都不会被其他隔离区访问。这意味着在一个 Isolate 中运行的代码与另外一个 Isolate不存在任何关联。依赖这点所以我们通过Isolate实现并发名词解释在下面描原创 2020-06-19 18:54:46 · 929 阅读 · 0 评论 -
dart 07.2 异步
Dart 异步dart提供了Future 和Stream 对象来实现异步方案futureFuture 是一个异步执行并且在未来的某一个时刻完成(或失败)的任务。这意味着其结果将在未来某一个时刻准备好当实例化一个Future时:该 Future 的一个实例被创建并记录在由 Dart 管理的内部数组中;需要由此 Future 执行的代码直接推送到 Event 队列中去;该 future 实例 返回一个状态(= incomplete);如果任务正在event队列中等待,返回一个未完原创 2020-06-19 18:53:36 · 192 阅读 · 0 评论 -
dart 07.1Dart执行模型
Dart 是一种单线程语言首先我们需要记住 Dart 是单线程的并且Flutter依赖于Dart重点Dart 同一时刻只执行一个操作,其他操作在该操作之后执行,这表示只要一个操作正在执行它就不会被其他代码中断同样的如果该操作需要消耗一段时间,那么在操作执行期间应用将被阻塞Dart 执行模型那么,Dart 是如何管理事件执行呢看下dart的 事件循环机制当启动一个Flutter/Dart 程序时 将创建启动一个新的线程或者进程Dart中叫Isolate这个Iolate 将作原创 2020-06-19 18:52:45 · 535 阅读 · 0 评论 -
Dart 06 类
1 类Dart 是一种基于类和 mixin 继承机制的面向对象的语言。 每个对象都是一个类的实例,所有的类都继承于 Object. 。 基于 * Mixin 继承* 意味着每个类(除 Object 外) 都只有一个超类, 一个类中的代码可以在其他多个继承类中重复使用。1.1 构造函数构造器的名字可以是 ClassName(无名构造器),也可以是 ClassName.identifier(命名构造器),实例化时的 new 关键字可以省略。所有的实例变量都会自动生成隐式的 getter 方法,非原创 2020-06-19 18:51:07 · 191 阅读 · 0 评论 -
Dart 05 异常
异常Dart 代码可以抛出和捕获异常。异常表示一些未知的错误情况。如果异常没有被捕获, 则异常会抛出, 导致抛出异常的代码终止执行。和 Java 有所不同, Dart 中的所有异常是非检查异常。 方法不会声明它们抛出的异常, 也不要求捕获任何异常。Dart 提供了 Exception 和 Error 类型, 以及一些子类型。 当然也可以定义自己的异常类型。 但是,此外 Dart 程序可以抛出任何非 null 对象, 不仅限 Exception 和 Error 对象。throw抛出异常原创 2020-06-19 18:47:53 · 254 阅读 · 0 评论 -
dart 04 控制流程
控制流程条件控制语句if elsevar a=1;var b=1;if(a==b){ print("a");}else{print("b");}swirch case支持标签操作 跳转到指定标签继续执行/* switch 参数可以是num 或者String*/ var command = "CLOSE"; switch (command) { case "CLOSE": print("CLOSE"); continue nowClose原创 2020-06-19 18:47:17 · 156 阅读 · 0 评论 -
dart03 运算符
运算符1 算数运算符1.1 普通运算符+ 加 求和 assert(2+3==5)- 减 求差 assert(2-3=-1)-expr 取反,或称否定(反向表达式)assert(2-3==-1)* 乘积 assert(2*3==6)/ 除法 结果为双浮点型 assert(5/2==2.5)~/ 除法,返回整数结果assert(5~/2==2)% 获取整数除法的余数(取模)assert(5 % 2 == 1);1.2 前缀后缀运算符先声明两个变量var a, b;原创 2020-06-19 18:46:49 · 224 阅读 · 0 评论 -
dart 02函数
函数Dart 是一门真正面向对象的语言, 甚至其中的函数也是对象,并且有它的类型 Funcation 。这也意味着函数可以被赋值给变量或者作为参数传递给其他函数。 也可以把 Dart 类的实例当做方法来调用main() 函数任何应用都必须有一个顶级 main() 函数,作为应用服务的入口。 main() 函数返回值为空,参数为一个可选的 List<String> 。函数声明bool isNoble(int number){a // 函数体 return原创 2020-06-19 18:46:14 · 120 阅读 · 0 评论 -
dart 01.1 List、set、map
集合数据遍历在类型介绍中我们说过了list map set 的创建 添加 取出数据 在这里就说下如何遍历list map setList遍历创建一个Listvar list=[1,2,3.4]遍历List通过for eachlist.forEach((dynamic i) => print(i)); list.forEach((i) { print(i); });通过迭代器Iterable循环遍历 list set 均实现了I原创 2020-06-19 18:45:29 · 153 阅读 · 0 评论 -
dart 01变量、常量、类型
变量变量声明1. 通过varvar name='Bob'变量存储的是对象的引用变量存储的是对象的引用,这里的变量name存储了一个String类型的引用,Bob则hi这个String类型的引用的值var声明变量后如果没有初始值,可以变成任何类型var a;a="name";a=123;a=true; //这样没有错误编译时根据值来推断类型如果有初始值类型将被锁定,不可改变数据类型var name="Bob";name=1000 // 这样是错误的原创 2020-06-19 18:43:47 · 314 阅读 · 0 评论 -
Dart简介
简介Dart是一种简洁、清晰、基于类的面向对象的语言,它是基于 JavaScript的但是结构要比JavaScript要多。Dart是一种面向对象的、类定义的、垃圾回收语言。它支持接口、mixin、类对象,具有化泛型、静态类型等Dart类型是强类型语言但是Dart也支持类型推断,如果要明确说明不需要任何类型,请使用特殊类型dynamic。在Dart中一切皆对象,可以赋值给变量的都是对象,包括数字 函数 null 对象,每一个对象都是一个类的实例,所有的对象都继承Object原创 2020-06-19 18:41:17 · 495 阅读 · 0 评论