化妆品排行榜
  1. 首页 >
  2. 美妆资讯 >
  3. 美妆 >
  1. Elixir基础概念讲解

美妆资讯
Elixir基础概念讲解
2023-08-04

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

在我开始写这篇博客之前,我认为用一个简短的声明作为开头是明智的。作为一个处于 JavaScript 学习旅程早期阶段的人,冒险进入未知领域似乎有点为时过早。该领域特别是另一种编程语言,我可能没有业务探索。但我相信这将是有益的。了解另一种语言的内部工作原理并理解它的语法和数据类型(即使是在基本层面上)可能会对如何以及在何处解决我的 JavaScript 和一般编码的弱点有所了解。

Elixir 是 Jose Valim 在 2012 年发布的一种函数式编程语言。从那时起,它已经获得了相当多的粉丝群,并被摩托罗拉、Pinterest 和 Discord (以及许多其他公司)等公司使用。它运行在 Erlang Beam 虚拟机之上,该虚拟机实际上是在 80 年代开发的,用于扩展不断增长的电话切换需求。Elixir 的创建本质上是为了让日常开发人员可以使用 Erlang 技术。Elixir 具有受 Ruby 启发的最小且动态类型的语法,这使得它比其他语言更容易上手。此外,它的 Phoenix Web 框架负责创建数以千计的全栈 Web 应用程序。

在您的机器上安装 Elixir 轻而易举。只需访问 Elixir 安装页面并在安装列表中找到您的操作系统。对于 MacOS,您只需在终端中运行命令,或者对于 Windows,遵循一系列快速安装提示,瞧,您已经安装了 Elixir。不需要路径配置或类似的东西,只需直接安装。要仔细检查安装过程是否成功,请返回您的终端并确保使用以下命令安装了正确的版本:elixir -v. 在撰写本文时,Elixir 目前的版本为 1.14.0。要开始一个新项目,请将您的终端设置为所需的目录,然后使用命令mix new project name,并且必要的文件将被加载到您的项目文件夹中,包括自述文件、gitignore、库和其他基础知识。

现在我们已经建立了一个项目,让我们开始看看构成 Elixir 的数据类型。

我们将研究的前两种数据类型是整数和浮点数。这些都是数字数据类型,但它们永远不能严格相等。任何整数都被认为是一个整数,而浮点数是在该数字后面具有任何给定小数位数的数字。这里快速演示了这两种数据类型如何在操作中一起使用,但最终还是不同的。

iex(1)> 1 + 12 iex(2)> 1.5 + 1.53.0 iex(3)> 1 + 1.52.5 iex(4)> 4 * 416 iex(5)> 3 === 3.0false

下一个数据类型是布尔值。这将是您的标准布尔数据类型,为您提供真假值。

iex(6)> truetrue iex(7)> true === falsefalse

我们甚至可以将值包装在 is_boolean 函数中,以评估该值是否实际上是布尔数据类型。

iex(8)> is_boolean(true)trueiex(9)> is_boolean(a)false

Elixir 中的字符串必须使用双引号分隔。(请参阅后面的单引号。)除此之外,Elixir 中的字符串的行为与 JavaScript 中的字符串非常相似。它们可以与+or<>运算符连接在一起,并且 Elixir 还通过将字符串值插入插值语法来支持字符串插值:#{string value}. 要打印字符串值,只需将您的值包装在IO.puts(string value)函数中。其他字符串函数包括String.length(string value)和String.upcase(string value)。

iex(10)> string = dogdogiex(11)> The #{string} ran fastThe dog ran fastiex(12)> The <> #{string} <> ran fast The dog ran fastiex(13)> IO.puts(Hello World!)Hello World!iex(14)> String.length(hello)5iex(15)> String.upcase(hello)HELLO

Elixir 中的列表类似于其他语言中的数组,但它们并不完全相同。从美学上讲,它们是相同的,但 Elixir 中的列表的行为更类似于链表数据结构。列表的第一个元素被认为是“头”,其余元素被认为是“尾”。可以使用hd(list)andtl(list)函数访问列表中的第一个和剩余的值。列表也是不可变的,这意味着无法编辑或更改原始列表。

iex(16)> list = [2, 4, 6, 8][2, 4, 6, 8]iex(17)> hd(list)2iex(18)> tl(list)[4, 6, 8]

元组有点类似于列表。但是,它们用大括号而不是方括号来表示。然而,它们也是不可变的。真正的区别在于列表在内存中作为链表进行排序。这意味着访问列表末尾是一个线性操作,因此我们需要遍历整个列表来确定其长度或大小。另一方面,元组连续存储在内存中。所以访问一个元素可以是一个非常快速的操作。但是,向元组添加或更新元素可能会占用大量内存,因为它需要创建一个新元组。

iex(19)> {hello, world!}{hello, world!}iex(20)> tuple = {hello, world!}{hello, world!}iex(21)> tuple_size(tuple)2iex(22)> elem(tuple, 0)helloiex(23)> elem(tuple, 1)world!

最后我们到达了原子!原子类似于 Ruby 中的符号,有点类似于在 JavaScript 中使用 const 关键字定义变量。原子是常量,其名称也是它们的值。换句话说,他们将永远代表他们所代表的东西。原子也可以表示布尔值,如下所示。

iex(24)> :hello === :hellotrueiex(25)> :hello === :worldfalseiex(26)> true === :truetrueiex(27)> is_atom(false)true

如果您想知道我的代码前面的“iex”是什么,那就是 Elixir 交互式 Shell。它是内置的 shell,允许您编写语句并执行它们,从而产生输出。

因此,有一些基本的基础知识可以让您的脚趾浸入 Elixir!我希望继续进一步探索 Elixir,并希望将来使用这种语言构建一些项目。

版权声明:CosMeDna所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系删除!

本文链接://www.cosmedna.com/article/665224577.html