好了, 各位小伙伴们, 时间过得真快, 已经进入我们这个系列的最后一篇. 这一篇里我们总结一些杂七杂八的东西. 也为我们的Dart语法糖之旅画个句号.
好了, 分隔线后我们进入正题.
1. Libraries and visibility:
a. Dart是通过Libraries来帮助我们创建模块化的code base的. Libraries不仅仅是用来提供API的. 因此我们可以用_来标注一个东东是不是内部的.
b. 重要的事情戳三遍!!! Dart里每一个App都是Library. 因此我们也没有一个关键字来区别App和Library.
c. Dart用import来导包.
d. Specifying a library prefix. 我们可以用as来定义导入一个lib的prefix. 这个非常好用. 在Flutter中, 我们通常导包http的话都会写成 import'package:http/http.dart' as http. 这样看起来非常的清晰. 举例如下.
e. Importing only part of a library. 我们可以用show和hide来决定在导包的时候来只导部分包.
f. Lazily load a library. 我们用deferred as来lazily导包. 这样导包的好处蛮多的. 一个非常明显的好处就是可以在init的时候省时间.
g. Use a lazily loaded library. 如何使用呢, 我们要用到async了. 并且要invoke loadLibrary(). 什么? 你没用过async, 没关系, 我们马上要说到async了.
2. Asynchrony support:
a. Dart对于Async的支持是非常好的. 这点跟Kotlin一样. 我一直觉得, Async block是非常狗的. 因此要么我们用Rx转换包装. 要么coroutines. 说白了, 其实我们都是想追求如何用同步的方法来写异步. 毕竟Async block实在是太难看了. 木有啥美感. 额, 扯远了. 马上扯回来.
b. 用await来返回一个Future, 这是我们在Dart里的写法. 重要的事情戳三遍!!! await一定要写在async function里.
c. 我们可以多次await. 如下图. 一个await的产出是另一个await的input.
3. Isolates:
Dart没有多线程的说法, 如果我们想在background做一些事情的话, 要用到isolate. 这个在Flutter中, 我们通常用于加载图片.
这里要注意的事, 我们需要保证不要跨isolates来访问state.
4. Typedefs:
在Dart里, 因为function也是object, 所以我们可以给function起别名. 如下图举例.
5. Metadatas:
这个超级有用了, 我们可以用metadata来提供额外信息. 像@deprecated啊, @override啊. 都是很常用的. 而且在Flutter里, 我们经常使用的一个是@required.
好了, 各位小伙伴们听着我唠唠叨叨的扯了7篇, 算是把Dart的基本语法过了一遍.
这个闲话Dart系列, 今天应该是终篇了. 当然如果在学习Flutter的过程中, 我看到了什么有意思的需要着重记录在Dart这边的话, 还是会放到这个系列中的.
不论你是不是一个Flutter的狂热爱好者, 如果不经意间在我这个小系列里流连一瞥, 希望你都能有所收获. 😓
当然code还是要多写多看的, 欢迎移步闲话Flutter之初始 - 简书. 和我一起来玩Flutter.
欧了, 谢谢观赏, 大家加油!
网友评论