> For the complete documentation index, see [llms.txt](https://lang-yu.gitbook.io/vert.x/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lang-yu.gitbook.io/vert.x/02-index.md).

# 2. 精灵谷

>     北海有大鸟，其高千尺，头文曰天，胸文曰侯，左翼丈曰\_\_，右翼文曰勒。头向东正，海中央捕鱼。或时举翼而飞，其羽相切如风雷也。——《东方朔 · 神异经》

    不论**精灵**有多少种起源，在各种传说中，它都可以意味着：长寿、擅长艺术、高贵、优雅、聪明、美丽，并且和大自然融为一体，在魔幻的舞台中，精灵扮演了不可替代的角色，由于它的出现，剧本才会有了灵性。在软件中，也许“精灵”可以隐喻为各种不同的**数据结构**，不要觉得它很木讷，相反它有着生命和灵魂，而我们的职责就是在学习时去了解它的一切。

    学软件的读者都听过一句：“软件 = 数据结构 + 算法”。那么本章我们将从数据结构入手，去了解一下Vert.x中常用的数据结构。这些数据结构在Vert.x开发过程中属于高频使用的内容，也许在学习过程会特别枯燥，但我还是会将它记录下来，利用实际场景来给读者解析，并且分享一些在使用过程中的心得。

    本章涉及的数据结构如下：

* JsonObject/JsonArray
* Store
* Options
* Record
* Future/AsyncResult

    了解数据结构不仅能要知道它提供的API以及如何使用，若能渗透到内部的实现和原理，那么您在使用过程就会变得更加左右逢源，编写代码的时候才不会有相关的困惑。
