官术网_书友最值得收藏!

Summary

We've now reached the end of the first chapter, which contains a condensed introduction to Elixir. We didn't visit every aspect of the language, but provided several links that are worth exploring. Our goal is to provide the necessary knowledge for you to follow the next chapters, where we'll build a complex application. A lot of ground was covered in this chapter, so it's normal if you don't remember every concept we covered. Let's recap the most important points:

  • Elixir is a dynamic language, and the type of a variable is determined by the value it holds.
  • Every data type is immutable, which means that you never actually change the contents of a variable, you operate on copies of it. You can, however, rebind a variable, which will make it point to a new memory location, leaving its old contents untouched.
  • Elixir code is organized in modules, which contain a set of functions.
  • Functions are first-class citizens, as you can assign them to variables and pass them as arguments to other functions.
  • Iteration in Elixir is always made through recursion. There are no while or do ... while constructs. Elixir provides a set of modules, such as Enum and Stream, that abstract the recursion and let you work with collections efficiently.
  • The usual control-flow constructs, such as if and else statements, are less common in Elixir. You still use them occasionally, but you normally use a combination of pattern matching and multi-clause functions to control the flow of your programs.
  • Exceptions aren't used for control-flow. Instead, they are used for truly exceptional events. We rely on supervision trees (which we'll discuss in Chapter 3, ProcessesThe Bedrock for Concurrency and Fault Tolerance) to recover from exceptions.
  • You can annotate your functions with typespecs, or type specifications, bringing some of the safety of static-type languages into a dynamic language. These annotations also serve as a type of documentation for your functions.
  • Elixir provides great mechanisms to have extensibility in your code, such as Behaviours and Protocols.
  • Elixir comes bundled with amazing tooling, and you can also take advantage of all the libraries in the Erlang ecosystem.

In the next chapter, we'll learn how to use Mix to create a new project, while also describing the application we'll build throughout this book. This was the only chapter that contained ad hoc examples, and in the following chapters, we'll always use our application to exemplify the concepts that we want to explain.

主站蜘蛛池模板: 若尔盖县| 江口县| 伊川县| 高唐县| 彩票| 沅江市| 横山县| 壶关县| 泰顺县| 汶上县| 临沂市| 宜春市| 北海市| 中山市| 芒康县| 惠水县| 涡阳县| 伊川县| 应用必备| 和静县| 亚东县| 长泰县| 甘孜| 新津县| 桦甸市| 吴堡县| 镇赉县| 娄底市| 香港 | 商水县| 天等县| 靖宇县| 杂多县| 湖北省| 湖州市| 宜章县| 卓尼县| 锦屏县| 肥乡县| 通河县| 六盘水市|