深入分析 Dart 集合操作符源码

Posted 熊喵先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入分析 Dart 集合操作符源码相关的知识,希望对你有一定的参考价值。

上篇文章我们详细介绍了有关 Dart 集合操作符函数的基本使用,那么这篇文章将会从源码角度,分析其内部原理。通过它你将会理解什么是惰性迭代器。

1. forEach 函数源码解析

  void forEach(void f(E element)) 
    //可以看到在 forEach 内部实际上就是利用 for-in 迭代,每迭代一次就执行一次 f 函数,
    //并把当前 element 回调出去
    for (E element in this) f(element);
  

2. map 函数源码解析

main() 
   var languages = <String>[\'Dart\', \'Kotlin\', \'Java\', \'javascript\', \'Go\', \'Python\', \'Swift\'];
   print(languages.map((language) => \'develop language is $language\').join(\'---\'));

以上面的例子为例。

首先,需要明确一点,languages 内部本质是一个 _GrowableList<T>,我们都知道 _GrowableList<T> 是继承了 ListBase<T>,然后 ListBase<E> 又 mixin with ListMixin<E>。所以 languages.map 函数调用就是调用 ListMixin<E> 中的 map 函数,实际

以上是关于深入分析 Dart 集合操作符源码的主要内容,如果未能解决你的问题,请参考以下文章

深入分析 Dart 集合源码

深入分析 Dart 集合源码

Dart语法篇之集合操作符函数与源码分析

掌握 Dart 集合操作符函数使用

掌握 Dart 集合操作符函数使用

Dart语法篇之函数的使用