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编程技术网」

Elixir 二进制模式匹配到列表

我这样做: <<a :: big-size(16), b :: big-size(16), c :: big-size(16)>> = <<0, 1, 0, 2, 0, 3>> 但我真正需要的是: a = [1, 2, 3] 有没有办法做到这一点?不直接使用模式匹配。只能在整个结构或子结构上进行匹配。你不能强迫一个结构变成另一个 不过,还有一行代码可以帮助您实现这一目标: <<a :: 16, b :: 16, c :: 16>

在Elixir中是否有类似于ruby发送方法的东西?

所以我想知道我是否可以在长生不老药中做类似的事情 def some_method(some_param) # a symbol for example send(some_param) end 你可以用 例如: 使用这样的模块: defmodule Apply do def dynamic(method_name, params) do apply(Apply, method_name, params) end def method1(params) do I

Elixir 外胚层中的多对多关系

我有一个用户模型和一个聊天模型。直观地说,任何时候都会有多个人属于同一个聊天组,每个人都可以拥有多个聊天组。因此,聊天组必须属于多个用户id 我的聊天组和用户架构如下: schema "chatGroups" do field :name, :string has_many :messages, Message belongs_to :user, User timestamps end schema "users" do field :name, :s

Elixir 逗号在长生不老药中有什么作用?

我是elixir的新手,正在学习使用phoenix框架编写的示例聊天应用程序。 我不明白这句话的意思 channel "rooms:*", Chat.RoomChannel 我在网上搜索了这种类型的语法,但没有找到我想要的答案。我知道,Chat.RoomChannel是一个模块,channel后面跟着一个字符串,该字符串标识正在考虑的房间类型 我想知道该语法是如何工作的逗号分隔参数列表 我猜你会对这是一个函数调用感到困惑。 在elixir中,当调用函数时,它可以选择给出一个参数。所以 chan

Elixir 在Phoenix中处理嵌套表单/EXTO变更集的正确方法是什么?

我正在凤凰城编写一个简单的CRUD应用程序,在那里,管理员在创建一个新组织时,可以为其提供一个初始员工帐户 实际上,组织和用户之间的关系是多对多的 我得出了以下结论: 用户架构: defmodule MyApp.User do use MyApp.Web, :model schema "users" do field :name, :string field :email, :string field :password, :string, virtual: true fiel

Elixir 在长生不老药中,为什么要将代币除以1?

在中,我看到了表达式:byte\u size/1和String.length/1 这些表达的意义是什么?作者希望通过将令牌除以1来传达什么?当您查看时,您可以看到: 注:Elixir中的函数通过名称和参数数量(即arity)来标识。因此,is_boolean/1标识名为is_boolean的函数,该函数接受1个参数。is_boolean/2标识具有相同名称但不同算术性的不同(不存在)函数 顺便说一句,“除以算术”符号直接取自Erlang——Elixir运行在其上的语言。在Erlang中,您可以执

Elixir 如何向管道内的贴图添加计算值?

我有这种情况。我从ftp服务器收集文件。 例如,一个示例文件 41199999 32355830 00003800 484E0040 48096E40 479E9B80 471B3F00 470A2100 431F0000 30305332 00003000 00003432 每个文件中的每一行都将使用转换公式进行转换 每一行都将转换为地图中的关键点。所以我将%{“ax”=>value}设为x行的编号,并对转换后的值进行赋值 除此之外,我需要更多的键,计算键,基于已经从每个文件读取的键,所以在

Elixir 理解是如何工作的

我试图理解理解在长生不老药中是如何起作用的。考虑下面的代码片段。 iex> for i <- [:a, :b, :c], j <- [1, 2], do: {i, j} [a: 1, a: 2, b: 1, b: 2, c: 1, c: 2] iex>对于i来说,关于执行顺序,它相当于两个嵌套循环。但是,嵌套循环将产生嵌套列表 for i <- [:a, :b, :c] do for j <- [1, 2] do {i, j} end end

Elixir (未定义的功能错误)模型中未定义的功能更改/2

我使用iex-S mix运行了一些代码 这没关系: user = Repo.get User, 1 Ecto.Changeset.change user, %{name: "xxxx"} 但这是错误的: User.change user, %{name: "xxxx"} raise(未定义函数错误)未定义函数Rumbl.User.change/2 我注意到web.ex文件中的函数模型中有import-exto.Changeset def model do quote do us

如何阻止Elixir在docstring中将\n解释为换行符?

我正在为一个函数编写一个docstring,在示例部分,我想展示它如何与换行符交互。例如: defmodule FooModule do @doc """ Checks whether input is a newline symbol. ## Examples > newline? "\n" true > newline? "abc" false """ def newline?("\n") do true en

Elixir GenServer中的回调函数

我是长生不老药的初学者,我正在努力了解如何使用GenServer。对我来说,神奇的是: defmodule Stack do use GenServer # Callbacks def handle_call(:pop, _from, [h|t]) do {:reply, h, t} end def handle_cast({:push, item}, state) do {:noreply, [item|state]} end end 代码取自G

Elixir 我们可以在defmodules中使用匿名函数吗?

我们能做些类似的事情吗 defmodule EmailMatch do match_email = fn(id) -> Regex.run ~r/[a-zA-Z]+\s*\@[a-zA-Z]+\.[a-z]+/, id end end 然后像这样使用它: EmailMatch.match_email("bdn@sdkj.net") 尽管上面给出了: ** (UndefinedFunctionError) undefined function EmailMatch.match_e

Elixir 从Phoenix 1.1.6升级到1.2,现在我得到一个编译器错误

我将Phoenix从1.1.6升级到1.2,现在我得到了一个奇怪的编译器错误 (CompileError) web/views/main_view.ex:2: module Rejack.Router.Helpers is not loaded and could not be found 我将一个新生成的Phoenix 1.2项目文件逐个与我的文件进行了比较,没有发现任何重大差异 视图部分myweb.ex如下所示: def view do quote do require Log

Elixir 列表中的长生不老药模式匹配头

尝试一个长生不老药教程,我发现了这个非常有趣的递归构造 所以我有一个清单: flares = [ %{classification: :X, scale: 99, date: Date.from({1859, 8, 29})}, %{classification: :M, scale: 5.8, date: Date.from({2015, 1, 12})}, %{classification: :M, scale: 1.2, date:

将iex会话附加到正在运行的elixir/OTP进程

我有一个elixir/OTP应用程序正在生产中运行,它是从mix phoenix.server开始的。它有几个保持状态的进程。其中一个是作为代理实现的隐藏,它当前有一个状态,我希望在不停止整个应用程序的情况下手动更改该状态。 一旦我进入了应用程序内部的iex会话,这将是微不足道的,但我不知道在elixir中是否可以使用此选项?这取决于您是如何启动OTP应用程序的。要连接到节点,需要使用--name或--sname标志启动节点。您可以使用node() 节点名是一个原子,其中第一部分是实际的节点名,

Elixir 如何从mix.exs启动多个应用程序?

我有一个Elixir应用程序,在lib/文件夹中有两个应用程序: myproject/lib/app1 myproject/lib/app2 它们都有使用应用程序的文件: myproject/lib/app1.exs myproject/lib/app2.exs 它们各自实现start并生成一个监督树 在myproject/mix.exs中,我尝试了: def application do [ mod: {app1, []}, {app2, []},

Elixir 长生不老药:如何在这种情况下测试多个值?

有没有一种更简短的方式来写这个: case testvalue do 200 -> true 404 -> true _ -> false end 对于200或404,它返回true;对于其他所有内容,它返回false。使用OR条件编写它会很好,但这会导致错误: case testvalue do 200 || 400 -> true _ -> false end >在模式中间没有直接语法> 或,但可

Elixir 使Fixture和testhelp功能可用于ExUnit和iex

我正在写一个我想测试的项目,既可以用ExUnit自动测试,也可以用iex交互测试。假设我的项目是这样的: [mto@bgobuildwin8g sample]$ tree . ├── config │   └── config.exs ├── fixtures │   └── complex_struct.exs ├── lib │   └── the_function.ex ├── mix.exs ├── README.md └── test └── the_test.exs 4 d

从elixir中的字符串获取单个浮点值

是否有一个方法可以接受浮点字符串并将其转换为单个浮点。它还必须处理不带的字符串,如“1” String.to\u float不处理“1” Float.parse处理“1”,但返回元组 iex(4)> Float.parse("1") {1.0, ""} 也许你应该用像 {res, _} = Float.parse("1") 或 元组是这样的,它可以返回它解析的浮点,以及它不知道如何处理的字符串的其余部分。这是解析器所期望的。只需使用元组中的第一个值。或者,如果您计划大量使用包装器函数,

Elixir 如何使用“将列表转换为稍有不同的列表”;地图;?

假设我有一张清单: my_list = [age: {"is invalid", []}, name: {"can't be blank", []}] 我想不出如何将其转换为以下内容: [age: "is invalid", name: "can't be blank"] 我必须使用Enum.map,但如何准确地将它们转换为另一个呢 Enum.map(my_list, fn(a) -> ???? end) 请注意,键的名称在编译时是未知的。您可以使用此函数:fn{field,{re

Elixir 如何更新一个外部重建结构的参数?

不确定我的术语是否正确,请更正 看起来它过去就像传递一个带有更新参数的结构一样简单,这仍然是我发现的所有示例的记录方式,比如Repo.update!({room | body:“A room”}) 但现在似乎需要一些键/主键参数以及变更集,我似乎无法将其转换为所需的格式,尝试类似于Repo.update!(变更集,{id:1})并获得如下错误: ** (FunctionClauseError) no function clause matching in Ecto.Repo.Schema.upd

如何从Elixir连接到MemSQL

与Mysql二进制兼容,并使用相同的驱动程序。然而,当你从长生不老药与或相连接时,这种理论上的美好似乎并不适用 有了mariaex,我可以很好地连接: 但我无法查询,因为enable_binary_协议问题: 在memsql.cnf中为聚合器启用二进制协议对某些短查询有效,但对长查询无效。首先,在编辑memsql.cnf以包含行“enable_binary_protocol=true”并使用“memsql ops memsql restart”重新启动集群后,我检查了参数是否确实已设置:

Elixir中十进制数据类型的测试?

对于Elixir Decimal软件包,是否有一个等价的Is_字符串、Is_数字、Is_整数、Is_二进制 如果不是,有哪些方法可以匹配小数点?Decimal是一种长生不老药结构。因此,您可以将其与%Decimal{}匹配。这可以添加到函数子句或case语句中。以下是几个例子: def add(%Decimal{} = x, %Decimal{} = y), do: Decimal.add(x, y) case num do %Decimal{} = x -> # ... num

Elixir 长生不老药-通过传递函数参数

假设我有一个函数,它有点冗长,每次都用相同的参数调用,在回调函数中调用该模块中的任何其他函数之前,还需要对该函数进行很多设置 SomeMod.called_a_lot(‘xx’, fn(y) -> SomeMod.needs_called_a_lot_to_be_called_first(‘do_stuff’) end) 我想我可以这样包装它: defp easier_to_call(func) do SomeMod.called_a_lot(‘xx’, fn(y) ->

Elixir 你所属的星外星和凤凰1.3已经消失了吗?

今天,我在我的机器上安装了phoenix 1.3,以使用以下命令测试新功能: mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez 并创建了新的凤凰项目 mix phx.new new_version 然后,我生成了一个博客上下文(或边界),其中包含两个模型(帖子和评论),如下所示: cd new_version mix phx.gen.html Blog Post pos

Elixir:迭代并从这个嵌套列表中收集值的更好方法是什么?

我想从所有人那里得到终点和失败比赛的总数。下面的代码可以工作,但我觉得不是很好。有没有更好、更灵丹妙药的方法 person_races = %{ "joy" => %{ "medals" => [%{ "race" => "finished"}, %{"race" => "finished"}, %{"race" => "failed"}]}, "jan" => %{ "medals" => [%{ "race" => "finished"},

Elixir 使用多个节点

我有一个复制的PostgreSQL数据库,有一个主数据库和两个副本 我希望Ecto使用master进行写查询,使用Slave(可能与master一起)进行读查询,可能还有一个权重选项来平衡查询 这可以通过配置实现吗?我似乎无法在文档或谷歌上找到它 我使用的是Ecto 2.1。不是通过配置。但您可以在配置中定义多个repo,并在select语句中使用不同的repo。至少这将帮助您将读写语句定向到两个不同的节点。我认为直接在Ecto/PostgreSQL中是不可能的。尽管上列出了一些工具,它们可以充

在Elixir中测试随机值碰撞

我试图创建一个测试用例,以可靠地处理数据库中某个值发生冲突的情况。当用户在我的应用程序中执行某些操作时,一个随机的12位数字会保存到附加到该操作的数据库中。如果不是完整长度,则将数字填充为12位。如果数据库中已经存在该数字,则程序会选择另一个随机数字 这听起来可能很愚蠢,但预期的用户基数可能会少于100-1000个 我的代码看起来像 def gen_random_unique() do unique = (:rand.uniform(1_000_000_000_000) - 1) |&g

Elixir 在handle_调用中发生的陷阱进程崩溃

我有两个GenServer模块-A和B。B监视A并实现handle\u info,以便在A崩溃时接收:DOWN消息 在我的示例代码中,B向A发出同步请求(handle\u call),A在处理请求时崩溃。B应该接收:DOWN消息,但它没有。为什么? 当我用handle\u cast替换handle\u call时,B收到:DOWN消息。你能告诉我为什么handle\u call不起作用而handle\u cast起作用吗 以下是简单的示例代码: defmodule A do use GenS

Elixir 如何让Phoenix在端口4000上收听?

我正在尝试让我的Phoenix应用程序在端口4000上侦听,但它不起作用。首先,我使用MIX\u ENV=prod MIX release--ENV=prod生成我的生产应用程序。然后,我将\u build目录同步到我的服务器。然后我运行PORT=4000./\u build/prod/rel/rumbl/bin/rumbl start。然后当我curl localhost:4000时,我没有得到响应 这是我的配置/prod.exs: use Mix.Config config :rumbl,

Elixir 使用子查询和主查询中的联接预加载EXTO

我正在使用EXTO从数据库请求数据,并且我已经使用以下代码预加载了通过价格折扣过滤的猫 Item |> join(:inner, [i], c in Cat, c.food_category_id == i.id) |> where([i, c], is_nil(c.price_discount)) |> preload([i, c], [ cats: c, cats: :houses ]) 这很好,但现在我想按id订购房子,所以我跳过了这项工作: I

Elixir Doctesting在每次运行期间返回不同映射的函数

假设我的函数返回一个映射,其中一些值可能是随机生成的。我希望至少能够再次测试输出类型,或者换句话说,从doctest级别检查天气返回值是否为map。最终,它包含特定的键。有可能吗?函数调用可能如下所示: iex> MyApp.function(params, opts) %{_} 输出不能是模式,但您可以使用模式%{}的is\u map或match?宏,如果值是映射,这两个宏都将返回true iex> is_map MyApp.function(params, opts) true

Elixir将参数传递到上一个Plug参数的Plug中

这可能不是一个面包屑问题,但如何将以前的插件中的参数传递到面包屑中?例如,如果上一个插头设置\u merchant将商户设置为连接参数商户,我如何将该id传递给breadcrumble plug :set_merchant plug :add_breadcrumb, name: "Dashboard", url: "/dashboard/#{conn.params.merchant_id}" conn.params.merchant\u id是我希望从第一个插件set\u mer

Elixir 使用Guardian进行控制器测试

我已经在我的应用程序中验证了路由,现在我要开始控制器测试这些端点。但是我首先需要授权我的请求,然后才能测试API端点。这是我的测试: setup %{conn: conn} do {:ok, conn: put_req_header(conn, "accept", "application/json")} end test "creates and renders resource when data is valid", %{conn: conn} do conn

Elixir 从子进程获取受监督的子id

您如何知道在子进程中您是哪个子id?(不作为参数发送)NB一般来说,如果您发现自己在查找自己的id,则表明您做错了什么。但这仍然是可能的 从子实现内部使用: defmodulestack do 使用GenServer def查找_self_id(sup)do self_pid=self() 啜饮 |>主管。哪个孩子() |>枚举查找(fn {id,^self\u pid,{,}->id\35;固定的self→ 是我! _->零#跳过其他所有内容 (完) 结束 结束 假设子项已知主管的pid或主

Elixir 建立一个关键字列表

我想根据结构中存在的一些值来构建关键字列表 目前我是这样做的: options = [timeout: @timeout, follow_redirect: true] if proxy_conf.proxy_hostname do options = options ++ [proxy: {proxy_conf.proxy_hostname, proxy_conf.proxy_port}] if proxy_conf.proxy_username do options ++ [

Elixir Heroku CI,凤凰城,长生不老药:';角色“;博士后;不存在'';psql:FATAL:database";u13792“;不存在';

尝试将Heroku CI与Phoenix和Heroku buildpack长生不老药结合使用 测试正在运行,但收到错误消息 psql:FATAL:数据库“u13792”不存在或 角色“postgres”不存在 app.json 测试控制台: mix.exs config/test.ex 当我删除psql-c'创建角色postgres时command,出现以下错误: 没有创建角色的测试控制台 ----->postgresql构建包不运行测试。跳过 ----->正在运行Elixir构建包测试。。。

Elixir 如何舍入到下一个1000值?

我想四舍五入到下一个1000的值,总是四舍五入 输入示例: 1 -> 1000 440 -> 1000 1001 -> 2000 14399 -> 15000 108 030 -> 109 000 我只能找到一个与我无关的Float.ceil函数。Ciel是正确的,您需要添加一些数学知识 ceil(number/1000)*1000 编辑:四舍五入到最接近的数字 ceil(number/n)*n //n = number to round to Train的

Elixir 为什么我的基于Enum.reduce的Enum.all实现会失败?返回一个空列表?

的Elixir帮助页面指出,几乎所有的Enum函数都可以在Enum.reduce/3之上实现。我试图通过编写一个使用Enum.reduce/3的新函数来实现Enum.all?/1。它在大多数情况下工作正常,但在某些情况下返回空列表 在一种情况下,我调用了传递1..7范围的函数和测试值是否小于7的函数。在另一个例子中,我通过了1..7范围和函数测试,测试值小于8 在第一种情况下,myall?/1函数正确返回false,因为所有值都不小于7 在第二种情况下,我希望为true,所有值都小于8,但返回一

Elixir 如何清除Phoenix LiveView表单中的文本区域?

我有一个Phoenix LiveView,其表单没有数据层支持,如下所示: <%= f = form_for :post, "#", [phx_submit: :create_post %> <%= textarea f, :message, placeholder: "Say something:" %> <%= hidden_input f, :user_id, value: @current_user.account_id %> <%=

Elixir 使用GenServer键值对生成restapi

嗨,我不确定如何将我的genserver功能传入Plug.Router 我要生成的查询字符串是: http://localhost:8000/search/?id=42&value="arabica" 我被告知要使用: conn = fetch_query_params(conn) 但我不知道如何调用我的genserver函数来适应这种情况 我的get宏如下所示: get "/search/id="{id}<>"&value="{value} do sen

Elixir:mix deps.get请求失败(403),并且没有缓存副本

我正试图开始在项目中使用。这是, 我相信,github最新版本的rataouille 我开始了一个新的学习项目: mix new rata_count 在ratatouille安装说明中,我使用了deps: defp deps do [{:ratatouille, "~> 0.5.0"} ] end 除此deps代码外,mix.exs的其余部分由“mix new rata_count”生成。我没有向该项目添加任何其他代码 混合deps.get响应: mix deps.g

Elixir 如何通过Phoenix框架链接到带参数的控制器

我在凤凰城有以下路线 page_path GET /next/:id SampleServerWeb.SampleController :next 我想从上一页发送参数id。 我不知道如何编写链接助手标记 我试着跟随,但不起作用 <%= link "NEXT", to: page_path(@conn, :next, id: 40) %> 请给我一个建议。 谢谢。终于成功了 <%= link "NEXT", to: Routes.page_path(@co

如何通过Elixir中的索引同时从列表中删除多个项目?

以下是我试图实现的目标: > a = ["a","b","c","d","e"] > Enum.reject_multiple(a,[1,3]) ["a", "c", "e"] 我能想到的最清楚的方法是包括索引,并拒绝所需的项目 rejected_index=MapSet.new([1,3]) [“a”、“b”、“c”、“d”、“e”] |>Stream.with_index() |>Stream.reject(fn{{u item,index}->index in reject

Elixir 是否可以使用EXTO在同一实体/表上实现多对多关联

我有一个具有唯一主键的用户表,我想建立一个与另一个用户实体的多对多关联,以实现“社交网络”之类的功能。从这一点上,我理解这是可能的,但是我如何为同样的内容构建exto模式呢 目前,使用一个join_to作为带有一些额外字段的模式,以进一步定义关联,例如一个标志blocked,以防一个用户阻止另一个用户,但我在设置join表上的has_many时遇到了一个问题,因为这两个场景都指向同一个用户模式。直到我开始怀疑这是否真的有可能与埃克托有关。当然有可能,你只需要指导埃克托如何进入各自的领域 用于迁移

Elixir Task.async/1中没有匹配的函数子句

我正在建立一个多的upsert,我被困在这一部分 multi = Enum.reduce(randoms_info, Multi.new(), fn random_info, multi -> Task.async(build_random_multi(multi, random_info, merchant)) end) |> Enum.map(&Task.await/1) |> build_random_arrangement_multi(s

上一页 1 2 ...  64   65   66   67    68   69   70  ... 下一页 最后一页 共 125 页