作者 / Kevin Moore 和 Michael Thomsen 我们隆重宣布推出 Dart 3.2,这一版本针对以下方面做出了改进: 新增了一项语言功能,可对私有 final 字段进行非空升级;通过新增的互操作功能改善了开发者体验;支持 DevTools 的扩展程序;并更新了我们的 Web 路 ...
Dart库中有大量返回结果为Future或Stream类型的函数,它们都是异步函数,函数的返回结果在构建可能存在耗时操作之后就返回了(如:网络IO操作),而不是同步等到这些耗时操作完成后在返回。关键字async和wait简化了异步编程(如:回调地狱),让异步代码的编写看起来像同步代码一样…… ...
Dart 3.0版本新增了很多新特性,包括有名的健全的空安全;同时针对类型(包括Mixin),除之前的abstract修饰符之外,还增加了base,final,interface和sealed等修饰符。今天我们来一起看下,这些类型修饰符,它们有哪些使用场景、使用时有哪些约束,和如何组合使用…… ...
扩展方法(Extension methods)是Dart语言的另一个高级的特性,我们可以在不改变、不继承原类型或类情况下,给类型或类增加方法,增强其功能。在Java中,我们经常看到StringUtils/MapUtils等String/Map类型的工具类,但是在Dart中,这些工具类统统不需要,因为... ...
Dart语言和其他面向对象语言一样,子类可以继承父类,获得父类的属性和方法。那么Dart语言,类继承还有什么特性呢…… ...
类方法就是为对象提供一些数据操作的函数,也就是类方法是操作对象的函数。那么在Dart中,类方法到底有哪些特别之处呢…… ...
我们通过类构造函数来创建对象,上文(第14天)我们学到,与Java不同,创建Dart对象时可以省略构造函数之前的new关键字。同时,Dart语言除默认构造函数外,还有命名构造函数,重定向构造函数,常量构造函数和工厂构造函数等…… ...
通过前面13天的学习,对Dart基础有了系统的熟悉,今天我们开始学习Dart类和对象,本文主要学习Dart类,包括类方法,构造器,对象类型,实例变量,隐性接口,类变量和类方法等…… ...
Windows中文用户名导致的Dart AOT编译失败 我的微软账户一直使用中文用户名,Windows会把这个用户名作为用户文件夹的名称,而且很难修改. 这就导致凡是放在这个路径下的文件都得有一个带中文的绝对路径. Dart 编译时可能因为这里的中文字符而出错. 问题出现时的操作系统及Dart SD ...
错误也可以理解为异常,代表应用程序在执行过程中的发生了非预期的行为,常见异常比如有空指针、数组越界、网络超时、IO异常等,Dart语言也支持抛出和捕获异常。和Java不同的是,Dart语言只有未检测异常。Dart中的异常需要被捕获并被处理,否则可能导致程序退出…… ...
本文是Dart语言学习的第12天,和前面11天相比,本文可能相对比较简单,因为本文要学习的是Dart语言的控制流,也就是循环和分支。且前面的11天学习中,多多少少都涉及到了控制流,同时对Java或者JavaScript比较熟悉的朋友,可能比较容易上手…… ...
Dart语言是纯面向对象的编程语言,就算是函数(对象的成员函数一般称为方法)也是对象,它也有类型,那么函数也可以作为其他函数的参数,或者赋值给其他变量。除此之外,Dart中的函数还有什么特别之处、它有什么规则和约束…… ...
Pattern模式是Dart 3.0发布的3个高级特性之一,在第09天我们学习了模式的概览和用法,对模式的强大之处有了基本的认识,今天我们来看看Dart中的全部模式类型,总共有15种,它们包括逻辑或、逻辑与、关系、值转换、空检测、空断言、常量、变量、标识符、括号、List列表、Map映射、Recor... ...
Dart 3.0在语法层面共发布了3个高级特性,第一个特性Record记录我们在前面已经学习和探究。今天我们来学习第二个高级类型Pattern模式,由于内容较多,共分2篇文章进行介绍,本文首先介绍模式的概览和用法,包括匹配、解构、在变量申明、赋值、循环、表达式等应用场景…… ...
我们来继续学习Dart语言的类型,包括Dart内置类型、Record记录类型(Dart 3开始支持)、集合类型、泛型和typedef类型别名。在前面的学习中,基础内置类型、集合和泛型都有所涉及和应用,本文我们和其他类型逐一进行介绍…… ...
我们前面完成了Dart语言基础特性的学习,包括基础语法概览、迭代集合、异步编程、Mixin高级特性和变量等。今天我们来学习Dart的库相关知识,包括如何导入库、指定库前缀、导入部分或者排除部分库、延迟导入库等,最后看下Dart中67个关键字作为标识符的一些约束…… ...
前面几天的学习,我们了解了Dart语言的特性(基础语法概览、迭代集合、异步编程和Mixin高级特性)。今天我们深入学习Dart的变量,包括:空安全(Null safety)、变量默认值、延迟变量(late)、final变量和const常量…… ...
在Java语言中,子类只能继承extends单个父类,实现implements多个接口(即单继承和多实现)。在Dart语言中,所有类型均是Object子类,它们也是单继承和多实现,但Dart中有个Mixin的高级特性,它可以做到更多的代码复用(单继承、多实现、多Mixin代码复用)…… ...
在前面几天中,我们学习了Dart基础语法、可迭代集合,它们是Flutter应用研发的基本功。今天,我们继续学习Flutter应用另一个必须掌握知识点:异步编程(即Future和async/await)。它类似于Java中的FutureTask、JavaScript中的Promise。它是后续Flut... ...