Questions tagged «elixir»

Elixir是一种开放源代码,动态,经过编译的通用功能编程语言。它设计为与Erlang平台完全兼容,非常适合编写具有软实时保证和热代码交换功能的容错分布式应用程序。

8
为什么Elixir中有两种功能?
我正在学习Elixir,想知道为什么它具有两种类型的函数定义: 在模组中定义的函式def,使用myfunction(param1, param2) 用定义的匿名函数fn,使用调用myfn.(param1, param2) 仅第二种函数似乎是一类对象,并且可以作为参数传递给其他函数。模块中定义的功能需要包装在中fn。otherfunction(myfunction(&1, &2))为了使它变得简单,有一些语法糖看起来像,但是为什么首先需要它?我们为什么不能做otherfunction(myfunction))呢?是否只允许像Ruby中那样不带括号地调用模块函数?似乎从Erlang继承了此特性,Erlang也具有模块功能和乐趣,那么它实际上是否来自Erlang VM在内部的工作方式? 拥有两种类型的功能并从一种类型转换为另一种类型以将其传递给其他功能,会有什么好处?调用函数有两种不同的表示法是否有好处?
279 erlang  elixir 



8
如何检查Elixir中变量的类型
在Elixir中,如何检查类型(如Python): >>> a = "test" >>> type(a) <type 'str'> >>> b =10 >>> type(b) <type 'int'> 我在Elixir中阅读了类型检查器,例如'is_bitstring','is_float','is_list','is_map'等,但是如果您不知道类型可能是什么呢?
138 elixir 

6
Elixir:使用vs导入
use和之间有什么区别import? use是在当前上下文中使用给定模块的简单机制 https://hexdocs.pm/elixir/Kernel.SpecialForms.html#import/2 从其他模块导入函数和宏 看起来有一个区别是import让您选择特定的功能/宏,同时use将所有内容都带入其中。 还有其他区别吗?您什么时候可以使用另一个?
134 elixir 

1
Elixir / erlang在哪里适合微服务方法?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 最近,我一直在使用docker compose做一些实验,以部署多个协作微服务。我可以看到微服务提供的许多好处,并且现在有了一个很好的工具集来管理它们,我认为跳入微服务旅行并不难。 但是,我也一直在尝试Elixir,我非常喜欢它本身提供的好处。鉴于它鼓励将代码打包到多个解耦的应用程序中,并支持热代码升级,您如何将docker与elixir(或erlang)混合使用? 例如,如果我要使用docker,因为它提供了dev-prod奇偶校验,那么elixir怎么适合呢?鉴于Docker容器是不可变的,我将失去进行热代码升级的能力,对吗?蓝色/绿色部署或Canary版本又如何呢? 我的意思是,我可以用Elixir编写微服务,并像使用其他任何语言编写微服务一样使用。多语制仍然是微服务的好处之一,但是我没有得到使用OTP平台的全部好处,我猜想纯协作式erlang应用程序比使用中间队列在以不同(或不同)语言编写的微服务之间进行通信的方式更为优化。

4
Elixir是否可以做Erlang无法做的事情,反之亦然?
这个问题是在Beam VM及其提供的功能的范围内,而不是在Turing完整语言可以做什么的一般范围内。我想花一些时间学习纯正的Erlang或Elixir。我得到了两者之间的基本区别,并且由于宏,更好的语法和今天更快的语言开发,我倾向于Elixir。 我的问题是:如果我选择Elixir,我会偶然发现我无法在Elixir中做到但可以在Erlang中做到的事情吗?我可以将所有OTP内容,所有Erlang库,代码重新加载等与Elixir一起使用吗? 我并不是要在这两者之间要求某人的偏爱。关于语言可能性的事实。最好是从在生产中同时使用过的人。
102 erlang  elixir  otp 

3
关键字列表有什么好处?
在长生不老药中,我们有地图: > map = %{:a => "one", :b => "two"} # = %{a: "one", b: "two"} > map.a # = "one" > map[:a] # = "one" 我们还有关键字列表: > kl = [a: "one", b: "two"] # = [a: "one", b: "two"] > kl2 = [{:a, "one"},{:b, "two"}] # = [a: "one", …
101 elixir 


3
是否有与Rails Console等效的Phoenix
我只是在学习Phoenix和Elixir,我来自Ruby / Rails,我在REPL中工作,pry用于检查数据库和应用程序状态。 我试图弄清楚如何在Phoenix应用程序中与数据库和模型进行交互。我知道iex,但是我不知道如何使用它从repl检查我的应用程序数据库。每次从repl时都需要用ecto连接到它吗?是否有一个rails console等效的。我检查了Phoenix文档,Elixir Dose和Ecto回购,但找不到我想要的东西。我想念什么吗? 编辑:根据下面的答案,我发现了ecto文档的这一部分。基于此,我可以做类似的事情ArticlesApi.Repo.all ArticlesApi.Article

5
如何检查Elixir列表或元组中是否存在某个项目?
这看似简单,但我似乎无法在文档中找到它。我需要简单地返回,true或者false如果列表或元组中存在某个项目。是Enum.find/3真正做到这一点的最好方法是什么? Enum.find(["foo", "bar"], &(&1 == "foo")) != nil
83 elixir 

3
IEx-如何取消多行命令?
当我使用IEx并像其他方括号或“这样的拼写错误时,大多数时候我都会遇到语法错误。但是在某些情况下,会出现以下情况: iex(3)> Enum.each '12345', &(IO.puts(&1")) ...(3)> end ...(3)> ) ...(3)> ' ...(3)> end ...(3)> "" ...(3)> ... ? How to produce syntax error ? ...(3)> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution 我不能犯语法错误,不能从头开始,必须重新启动整个IEx。是否有任何键盘快捷键或命令可跳过执行当前iex(3)并转到下一个iex(4)?
82 elixir 

2
如何运行Elixir应用程序?
运行Elixir应用程序的正确方法是什么? 我通过以下方式创建一个简单的项目: mix new app 然后我可以做: mix run 基本上可以一次编译我的应用 所以当我添加: IO.puts "running" 在lib/app.ex我"running"第一次看到的情况下,run除非有一些更改,否则每个连续项都不会执行任何操作。接下来,我该怎么办app.app? 我当然知道我可以做到: escript: [main_module: App] 在中mix.exs,提供def main(args):,然后: mix escript.build ./app 但是我认为这有点麻烦。 还有类似的东西: elixir lib/app.exs 但这mix.exs显然不算在内,这对于my中的依赖项是必需的app。
81 elixir 

10
在Elixir中获取当前日期和/或时间
这似乎是一个非常愚蠢的问题,但是如何在Elixir中获取并显示当前日期或时间呢?我尝试浏览文档,但找不到任何东西。我需要使用Erlang函数吗?
80 elixir 

3
Elixir:何时使用.ex以及何时使用.exs文件
药剂的文档指出的是 除了Elixir文件扩展名.ex之外,Elixir还支持.exs文件进行脚本编写。Elixir对两个文件的处理方式完全相同,唯一的区别在于意图。.ex文件旨在在将.exs文件用于脚本编写时进行编译,而无需进行编译。 但是我仍然不确定何时使用哪种文件类型。.ex和.exs的缺点和目的是什么?
78 elixir 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.