Generic Type Variance in Dart

在泛型(generics)编程中,复杂的父/子类型关系判断常常带来困惑,比如何时List<String>可以被看作List<Object>的子类型?往一个List<Object>类型的列表插入字符串对象是否总是被允许的? 从C#到Kotlin,很多编程语言都支持类型「变体」(或型变,variance) 的特性,Dart在未来的版本中也会加入「声明处型变」的支持。在这篇学习笔记中,梳理了几种变体的含义,以及它们在Dart中的实现情况。
全文

Promises风格的异步编程

在Node.js中,Promise可用于简化异步处理过程的复杂度,解决Callback Hell问题,除了说明这个问题之外,本文还从另一个不常被提及的场景切入,来说明Promise给我们提供了更高的自由度,有效地把函数的内在逻辑和它的调度方式(同步/异步)分离开来,从而帮助我们编写重用度更高的函数。
全文