Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Elixir_IT技术博客_编程技术问答 - 「Fatal编程技术网」

Can';t运行elixir交互模式

我按照指南在Ubuntu机器上安装长生不老药。但是当我试图运行命令时遇到了一个问题。PFA。有人能帮我找到正确的路吗?请建议我,如果有任何其他方式来设置同样的Ubuntu ./bin/iex 谢谢,您是否先运行了make clean compile?看起来您刚刚克隆了repo并运行了iexbash脚本,但这将失败,因为Elixir.beam文件尚未编译。您可以在阅读{reason,{unde,[{'Elixir.IEx.CLI',start,[]}]}的错误中看到这方面的提示,这基本上意味

Elixir 使用管道重写编程Phoenix示例函数

在编程Phoenix第3章中,有一个硬编码回购示例,代码如下: defmodule Rumbl.Repo do @moduledoc """ In memory repository. """ def all(Rumbl.User) do [%Rumbl.User{id: "1", name: "José", username: "josevalim", password: "elixir"}, %Rumbl.User{id: "2", name: "Bru

Elixir Phoenix框架{:error,:econnreference}

我正试图在我的Phoenix应用程序上运行一些测试,下面的一行代码来自: (在我的端点模块中,我的websocket设置为“/socket”;上面的URL正是我的浏览器要连接的URL) 。。。失败的原因是{:error,:econnreference} 其中提到了此错误,建议放置以下代码段的变体: defmodule Calculon.Support.Helpers do def launch_api do # set up config for serving endpoi

Elixir 分离的进程不写入文件&;rpc调用失败,连接的节点出错

我有一个长生不老药的应用程序,我启动了 iex --sname "main" --cookie "abc" --detached -S mix 如果启动此过程时不使用分离选项,则一切正常。除此之外,main进程使用file.open和IO.write(文件路径,数据)将数据写入.csv文件。使用分离选项,不会向文件写入任何内容 所以我想,我可以尝试从我开始使用的另一个节点连接到这个流程 iex --sname "test" --cookie "abc" -S mix 那我会的 Node.co

我可以自定义Elixir iex以使用ctrl-D退出吗?

我知道,但我喜欢在其他repl中使用ctrl-d(例如,node,irb) 我如何定制iex来实现这一点?据我所知,这目前是不可能的。IEx操作支持直接来自Erlang shell,而这并不是在Erlang中实现的 最有可能的是,它也将永远不会被实现-这个更改已经被提议并被拒绝:不可能,但是可以使用ctrl-\退出Iex和Erl。感谢链接!我(还)不明白“不按ctrl-D键”决定背后的原因,但知道这是故意的还是好的。定制iex以按ctrl-D键退出可能不明智,但我仍然好奇这是否可能。

Elixir 如果找不到,则查找或插入,如果更改集无效,则返回错误

我想找到一个实体,如果找不到则插入它。目前我是这样做的: my_item = Repo.get_by(MyItem, var1: "some value") || Repo.insert!(MyItem.changeset(%MyItem{}, %{"var1" => var1})) 有更好的方法吗?如果变更集无效,我还想返回一个错误,当前此代码没有执行此操作。尝试以下操作: item = case Repo.get_by(MyItem, var1: "some value") do

System.get_env在dev.ex Elixir Phoenix中

我正在尝试获取我的dev.exs文件中的env文件值。但他们都是零 config :extractor, :mailgun, domain: System.get_env['MAILGUN_DOMAIN'], key: System.get_env['MAILGUN_KEY'] 当我转到iex时,它们是作为实际值出现的。在我的应用程序mix.exs中,我添加了dotenv如下 def application do [mod: {Extractor, []}, ap

我如何参与回购。在elixir中通过()查找

我需要查找一个用户,还需要将其与另一个表(合作伙伴)连接起来。以下是没有连接的工作代码: result = Repo.get_by(User, login: auth.info.email) 用户表与合作伙伴表之间有一个外键,因此我想尝试以下方法: result = Repo.get_by(User, %{ login: auth.info.email, join: :partner } ) 但这导致: field `User.join` in `where` does not exist

Elixir 如何替换映射集中的值';使用特定的键值对映射?

我对函数式编程还不熟悉,所以我正在努力解决这个问题 我试图通过地图中的一个键在地图集中找到一个地图,然后替换一个不同的值。我的方法是,在地图集中找到地图,然后从地图集中删除地图,替换地图中的值并将其添加回 def replace_in_mapset_by_id(mapset, id, key, value) do # Find the Map that matches the ID of the Map we are looking for foundMap = (Enum.fi

Elixir 修改列表列表中的列

我有一张这样的名单 list = [[title, description, ~N[2018-01-01 23:00:07], comment, user], [title, description, ~N[2018-03-02 12:10:18], comment, user]] 现在我需要将每个NaiveDateTime转换为Erlang日期(或Unix时间戳) 我相信我可以做像这样的事情 new_list = Enum.map(list,&modify_date/1

Elixir 如何并发执行函数

我是FP和elixir的新手,我正在尝试同时执行以下功能。但这在read()上被卡住了。我尝试了Task.async和spawn\u link并在其中传递函数,但没有成功 defmodule MyFile do def start() do read() write() #Task.async(read()) #Task.async(write()) end def read() do case 1 do 1 -> IO.puts "this is one" 2

如何使用key-in变量更新Elixir结构

我有一些结构定义 defmodule Foo do defstruct [:a, :b] end 我有一些结构 a = %Foo{a: 1, b: 2} 我能够使用管道获得新的结构(如地图) 但与map不同,当变量中的键: iex(4)> key = :b :b iex(5)> %Foo{a | key => 3} ** (CompileError) iex:5: unknown key key for struct Foo 问题是:当我在变量中有要更新的键时,如何获

如何使用hound/elixir拍摄失败截图

我正在尝试使用take_screenshot()(Hound)截图。我只需要抓拍失败的截图 我已经尝试了try/rescue,但是即使断言失败,仍然会执行rescue块 try do // some page elements action assert visible_page_text(), "Hello World" rescue _ -> take_screenshot() end 我也试过, try do // some page elements act

Elixir 什么时候应该在.exs文件中使用defmodule

我尝试创建一个混合项目,但它没有config.exs,因此我创建了该文件 我引用了凤凰城项目中的config.exs 我看到config.exs没有模块定义。我试图在.ex文件中声明一个独立函数,但它按预期引发了一个错误 ** (ArgumentError) cannot invoke def/2 outside module 然后我假设.exs可以在没有defmodule的情况下编写,然后我看到mix.exs有模块定义。为什么会这样 我的问题是,为什么在没有模块定义的情况下保留config.

Elixir:无法在Elixir脚本中生成的进程中运行:timer.tc

在iex控制台中工作正常: iex1>spawnfn->:timer.tc:timer,:sleep,[100]|>elem0 |>IO.puts结束 PID 100603 但是,当我将完全相同的行spawfn->:timer.tc:timer,:sleep,[100]|>elem0 |>IO.puts end放入.exs脚本中时,什么都不会发生,根本没有输出 为什么呢?如何并行测量函数的执行时间?脚本在打印之前退出,您不监视已启动的进程,这会导致某种竞争情况。事实上,一切都按预期进行。确保您的

Elixir 混合cmd别名的引号和转义

原则上,通过在mix.exs中定义以cmd开头的别名,我可以将任何shell命令作为mix任务运行。但我正在与空白、引用和反斜杠进行斗争。以下是一些非工作示例: defp aliases do f1: ["cmd echo \"two spaces between\""], f2: ["cmd echo 'two spaces between'"], f3: ["cmd echo two\ \ spaces

Elixir 其中';什么是长生不老药?

在elixir项目mix.exs文件中,我们包含如下依赖项 defp deps(_) do [ {:phoenix, "~> 0.6.1"}, {:ecto, "~> 0.2.0"} ] end 存储这些依赖项的elixir代码的存储库在哪里 来自Ruby背景的deps函数对GEM文件来说是一个很好的分析工具。但我知道gems默认是从“rubygems.org”中提取的。换句话说,什么是灵丹妙药的Rubygems.org?这在中提到,它在中。还值

Elixir脚本递归加载文件夹中的所有模块

我想在特定文件夹中递归编译和加载所有模块。 我知道我可以用Mix项目做到这一点 iex -S mix run 它将加载lib/目录中的所有文件 然而,如果可能的话,我希望在非混合脚本编程中有相同的行为。 类似于code.compile\u all(“目录/”) 有这样的API吗?我不确定在Elixir中是否有内置的方法来实现这一点,但是您可以使用类似于Erlang的东西来实现同样的结果 :filelib.fold_files "directory/", "\.ex$", true, &

Elixir 为什么可以';在映射文本中是否有一个变量作为键?

比如说, x = "foo" %{foo => 1} **(CompileError) iex:11: illegal use of variable x in map key 显然,它是在编译时构建映射的,这可能会更有效,但为什么不像大多数具有数据结构文本的语言那样,它不返回到运行时构造函数呢?我很想知道《长生不老药》中地图的特征是否有我遗漏的地方 更令人困惑的是,一年多前何塞·瓦利姆(JoséValim)曾说过: Variable keys in maps will be avai

如何从Elixir中的递归函数返回/生成值?

这似乎是一件简单的事情,但我只是似乎找不到一个足够简单的答案让我摸索 假设我有一种长生不老药的功能,如下所示: def fetch_card_ids(offset, total_cards) when offset < total_cards do url = "http://some.domanin?offset=#{offset}" response = HTTPotion.get url #return or yield respon

Elixir 解析LIFX头

我已使用此代码从我的LIFX灯泡获取数据包: defmodule LIFX do def listen(port) do udp_options = [:binary, {:reuseaddr, true}, { :active, false }] { :ok, socket } = :gen_udp.open(port, udp_options) do_listen(socket) end def do_listen(socket) do case

Elixir:如何处理函数中的可选/默认参数和nil值?

我有一个关于默认参数和nil值的一般性问题。假设我有两个函数。一个调用另一个(这是一个助手函数)。两者都有一个可选参数 helper函数只是用一个连接符将一个列表连接到一个字符串。joiner被传递给opts关键字列表中的第一个函数。joiner的传递是可选的,它默认为和“ 问题是:在第二个示例中,opts[:joiner]将为零。但它仍然存在,因此不会使用默认值 一种可能的解决方案是使用案例: defmodule ParamTest do def func_1(list, opts \\

Elixir 手动添加gettext翻译键

我正在使用phoenixframework创建一个项目,并使用gettext添加一些翻译。命令mix gettext.extract-merge从控制器和模板中获取所有我的翻译密钥,并将其存储在.pot和.po文件中 但是我在配置文件中有一些翻译键,我在表单选择框中将其用作选择选项。现在我有一个键列表:[:键1,:键2,键3,…,键n] 现在我需要一个关键字列表来显示翻译,并使用选择框选择关键字。我的结果是:[{translation 1:key1},{translation 2:key2},{

Elixir is#u integer()不';不能使用Enum.all?

这里没有什么长生不老药。我的问题是: 使用Enum.all?/2函数时,我们传递一个函数作为第二个参数: iex(19)> is_int = &(is_integer(&1)) iex(20)> Enum.all?(list, is_int) true 那么,为什么我不能直接传递is\u integer iex(21)> Enum.all?(list, is_integer) ** (CompileError) iex:21: undefined functi

Elixir 在宏定义中取消引用参数将挂起函数调用

我一直在做一个关于宏的练习(戴夫·托马斯的优秀作品,第21章),我对发生的事情的理解有点突兀。我有两个模块,Tracer和Test,其中Tracer重新定义def宏以插入调用和响应日志,如下所示: defmodule Tracer do def dump_args(args) do args |> Enum.map(&inspect/1) |> Enum.join(",") end def dump_defn(name, args) do "#{

Elixir-Exto 2:自引用多对多和exto.Changeset.put\u assoc.如何?

我正在尝试在《星外2》中创建一个自引用的many\u-to\u-many关系。我关注了blogpost,到目前为止它一直在运行。但是,尝试更新与exto.Changeset.put_assoc的关联总是会导致错误。我不明白为什么 这是设置: defmodule MyApp.User do use MyApp.Web, :model alias MyApp.Contact schema "users" do field :username, :string # A

Elixir 什么';在phoenix中实现highlight.js的正确方法是什么?

我用过,它很管用,但感觉有点粗糙。我尝试将highlight.pack.js文件复制到web/static/js并从.html.eex文件调用它,但这只会给我一个错误。我尝试过使用CDN(它有效),但没有得到我想要的结果。那么,在phoenix v1.2.0中实现highlight.js的正确方法是什么呢。如果有必要的话,我将使用earmarkv1.0.1提供降价支持 正确的方法是通过NPM安装: $ npm install --save highlight.js 请注意,--save会自动将

Elixir 在github repo上获取奇怪的主管错误

我对Elixir是全新的,当一个构建决定不构建时,我很难跟踪问题 所以我试着在这个基础上使用这个 我面临的一个问题是,我不断地遇到这个问题: ** (Mix) Could not start application reph: Reph.start(:normal, []) returned an error: shutdown: failed to start child: Reph.ReactIO ** (EXIT) an exception was raised:

使用“从插头分配到视图”(elixir/phoenix)

我有我的api管道,我想在其中添加一个插件,该插件基本上在数据库中执行一些操作,并根据响应执行分配,然后在视图中使用该分配 我在将分配从插件传递到视图时遇到问题 web/router.ex pipeline :api do plug ApiV2.Plug.Authenticate, repo: Auth.Repo plug :accepts, ["json"] end defmodule ApiV2.AddressController do use ApiV2.Web, :cont

Elixir-在创建escript应用程序时如何包含依赖项?

作为一个学习项目,我正在尝试用Elixir创建一个小型CLI应用程序。这个程序的某些部分将需要一些日期时间处理,因此我偶然发现了长生不老药库[日历][日历] 当我使用以下命令构建它时,它似乎确实包含[calendar]的依赖项: (mix clean &&)? mix escript.build 当它向我抛出这个错误时: Could not start application tzdata: exited in: Tzdata.App.start(:normal, []) *

附件文件名显示不正确-Elixir

我在发送带有附件的电子邮件时遇到问题,该附件的文件名包含中文字符 电子邮件中附件的文件名看起来不正确。 如何使文件名在附件中正常显示 长生不老药 def compose(重用我的路径、简历名、电子邮件、主题、文本)do %邮递员{ 主题:主题,, 来自:career@xxx.com", 收件人:[email],#应为[email]arg html:“ #{text} ", 附件:[ Mailman.Attachment.inline!(reusme_路径,“#{subject}.pdf”

使用structs Elixir更新列表

我有一个对象 %{ shares: [] } 我想通过Enum将结构%Cs{name:“Junaid1”},%Cs{name:“Junaid2”}添加到列表中。每个或映射都可以这样做吗 好的,再简单一点,我再次更新问题 Enum.each(email_array, fn (email) -> with {:found_user, sharee} <- ensure_user(email) do case CameraShare.create_sha

如何在mix.exs文件中指向本地elixir版本?

所以我有一个phoenix项目,我用它作为某种测试应用。如果我想使用我正在使用(并对其进行更改)的elixir源代码的本地版本,我该如何告诉phoenix使用它?我也希望能够使用“iex-S混合”与它。下面的elixir:[“~>1.6.0-dev”,路径:'/my/local/path/to/elixir']不起作用,但我正试图这么做 我已经尝试添加下面的,我得到一个语法错误。向依赖项添加elixir(在def deps函数中)似乎没有任何作用。我还使用kiex和kerl进行长生不老药版本配置

Elixir 如何仅使用正则表达式计算字符串中某些特定前导字符的数目?

给定一个输入字符串,我希望只使用正则表达式,以前导顺序查找特定字符在字符串中出现的次数。我一直使用正则表达式来匹配表达式,但从不计算其中的字符。我不知道怎么做。所以我只是在寻找一个解决这个问题的方法,使用模式匹配 例如,假设我的示例字符串是S=“0004fhjs0sjk0” 我需要计算字符串s中前导的“0”s的数量,在本例中为3。如何定义返回计数的函数(此处为3) 我已经用递归实现了一个解决方案,但我想用正则表达式来实现它。 def get_leading_zeros(value, count)

Elixir 迁移、模式和DRY原则

我对长生不老药和异位素还不熟悉,我想知道我们是否打破了枯燥的原则,两次声明对象的模式:迁移和模式 我假设一个表创建的迁移可能是默认模式,不是吗?不,实际上,试图让一个文件来完成所有事情会非常奇怪。 EXTO的模式处理“属于/拥有”多个/多个对多个关系,迁移处理“与数据库对话”部分 它们有不同的用途,加上默认模式不声明键、外键等。嵌入式模式可能以不同的方式存储在数据库中。迁移可能会修改模式。等等,等等,等等。这应该是一个评论,不是一个答案。“>你必须有50个声誉来评论。“让它发生,我将能够做到这一

Elixir 如何使用健忘症何处(又名健忘症)?

我在我的项目中使用以下方法: use Amnesia defdatabase Database do deftable Account, [{:id, autoincrement}, :email, :account_number, :password, :amount], type: :set, index: [:email, :account_number] do @type t :: %Account{ id: non_neg_integer,

如何在Elixir中向上移动嵌套列表

我打算这样做: columns = ["id","name","col1","col2"] rows = [10, "foo", "val1", "val2" ] Enum.zip(columns, rows) |> Enum.into(%{}) => %{"col1" => "val1", "col2" => "val2", "id" => 10, "name" => "foo"} 但不幸的是,行是一个嵌套列表,例如:[[10,“foo”,“val1”

Elixir 将用户结构放入会话中是否不好?

我在看这篇博文: 这里有一节将用户id放入会话中。但是,当您想要访问该用户时,您需要使用该ID来查找该用户 conn |> put_session(:current_user, user.id) |> put_flash(:info, "Logged in") |> redirect(to: "/") 将整个用户结构放在会话中有什么不好?那会更简单吗 ... |> put_session(:current_user, user) ... P

Elixir 由生成器构造二进制的理解

我正在寻找长生不老药,我对这个片段感到困惑: for <<c <- " hello world ">>, c != ?\s, into: "", do: <<c>> 如果代码不能独立存在,那么它如何在理解范围内工作?它在理解之外的任何地方都有效吗?这正是Elixir选择用于二进制理解的语法。另一方面,Erlang使用了,可能值得一提的是,“子句可能独立”是定义有效性的一种非常糟糕的方法,因为即使是最简单的理解子句i iex(2)>

在Ubuntu中升级到Elixir 1.7

我试图升级到Elixir1.7(我目前有1.6.0)。 我在终端上运行了brew upgrade elixir,但它说错误:elixir未安装。 当我运行elixir--version时,我得到了一个奇怪的输出: =SUPERVISOR REPORT==== 27-Jul-2018::15:03:35.806956 === supervisor: {local,'Elixir.Logger.Supervisor'} errorContext: start_error

如何在Elixir中按贴图值对贴图列表进行排序?

我需要使用map的值对map列表进行排序 list = [ %{id: 3, name: "Abe", count: 50}, %{id: 1, name: "Bill", count: 10}, %{id: 2, name: "Candy", count: 2}, ] 例如,我需要按id排序的列表: list = [ %{id: 1, name: "Bill", count: 10}, %{id: 2, name: "Candy", count: 2}, %{id:

Elixir 有没有更简单的方法来获取与函数匹配的列表中的第一个项,然后返回该项以及不包含该项的列表?

示例:我们有一个列表[1,2,3,4],还有一个fn&(&1>=3)我想拿回3,和[1,2,4] 目前我的做法是: index = Enum.find_index(list, func) elem = Enum.at(list, index) rest = List.delete_at(list, index) 这是3行代码,看起来像是一个可以缩短的常见模式。有没有更好的方法来实现类似的功能?假设只有一个元素与您的函数匹配,您可以使用split\u和+模式匹配: iex(1)> {[it

Elixir 函数作为参数——这里发生了什么?

我正在经历一些长生不老药的Koan,我对这些代码行中发生的事情感到有点困惑 def乘以五,然后(数字,乐趣),做:乐趣。(数字*5) def方形(编号),do:编号*编号 koan“您可以将函数作为参数传递。在名称前放置一个“&”,并说明arity”do 断言时间_五_和_然后(2,&平方/1)=___ 结束 对于\uuuuuuuu,正确答案是100。但我不知道如何或为什么,有人能清楚地说出发生了什么吗?&是操作员&square/1表示“捕获名为square的函数,该函数具有arity 1(简

Elixir 外胚层中的双向关系和多态关联

我有一个名为:issues的表,我需要建立一种链接两个问题的方法。我曾想过创建一个名为:links的新表,但由于必须遵循以下规则,因此在设计EXTO模式时遇到了一些问题: 1. Links should be two-way and be any of these types: ["blocked-by" | "blocking" | "relates-to"] 2. If Issue-A is blocked-by Issue-B, Issue-B should be blocking Iss

Elixir 引发错误时在堆栈跟踪中包含函数参数

在Erlang中,当引发错误时,我可以通过将第二个参数传递给error,将参数包含到当前函数中: -模块(foo)。 -出口([foo/2])。 foo(A,B)-> 错误(出了问题,[A,B])。 这意味着参数将在堆栈跟踪中可见,这可以使调试更容易: > foo:foo(1, 2). foo:foo(1, 2). ** exception error: something_went_wrong in function foo:foo/2 called as

在Elixir中将字符串与列表中的随机值进行比较时出现问题 defmodule需要做什么 def rnd do lst=[“石头”、“布”、“剪刀”] tke=枚举随机抽取(lst,1) IO.puts“#{tke}” IO.puts“#{List.first(lst)}” IO.puts“#{tke==List.first(lst)}” 结束 结束 接受.rnd

输出总是错误的。 为什么?您使用的是Enum.take_random,它返回一个列表。这当然永远不会匹配字符串 对代码的一些改进: defmodule需要做什么 def rnd do lst=[“石头”、“布”、“剪刀”] tke=Enum.random(lst)#这将返回单个项目,而不是列表 IO.inspect(tke)#如果以前使用过inspect,也不需要进行字符串插值 #你会发现“tke”确实是一个列表 IO.puts hd(lst)#hd和tl都是非常有用的函数,请查看它们 tke=

上一页 1 2 ...  58   59   60   61    62   63   64  ... 下一页 最后一页 共 125 页