Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/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 这是什么意思?服长生不老药

我知道String.strip/2,但我不知道它用于删除空白 String.strip "_some_", ?_ #=> "some" 如果字符串中有空格而不是u,如何去除它们?还有,如果有人能解释一下是什么,那就太好了?这里的意思是。有一个String.strip/1可以去除所有unicode空白。所以你可以 iex(2)> String.strip("\t\ntest ") "test" 字符前面的问号返回其代码点,在《入门指南》的这一节中有提到:供其他人参考:相关问

Elixir 长生不老药&x27;s Kernel.SpecialForms.case/2:多子句“;标题「;执行相同的命令;正文“;

我有一个关于Elixir中的case语句的简单问题(Kernel.SpecialForms.case/2确切地说:,)。有时,我需要几个子句/模式匹配来执行相同的事情。我总是能找到一个有警卫的解决方案来伪造它,但我想知道是否有可能定义几个模式匹配来执行同一个代码块 例如,在Ruby中(我在Ruby中不使用case,它只是一个示例),您显然可以这样做: case condition when clause1, clause2 value1 when clause3 valu

Elixir 为什么这个Exredis客户端在退出回调时不抛出错误?

我的测试中有这个代码 setup do client = Exredis.start on_exit fn -> client |> Exredis.query ["FLUSHALL"] end {:ok, client: client} end 当我运行混合测试时,我永远不会得到一个错误,说匿名函数的闭包上不存在客户端进程。测试将继续运行,我的测试将失败,因为它清除了我的Redis 另一方面,如果尝试在不存在的进程上运行Exredis.query,则会

Elixir 如何在phoenix框架中更新phoenix.gen.html创建的文件?

我使用phoenix.gen.html创建了一个简单的用户模型,其模式在models/user.ex中生成,如下所示 schema "users" do field :name, :string field :email, :string field :bio, :string field :dislikes_turnips, :boolean timestamps end 除了models/user.ex之外,还创建了

Elixir 如何在不扫描整个表的情况下检索ets密钥列表?

我正在使用ets via elixir作为一个简单的内存持久层来存储和检索密钥,也用于偶尔的foldl,它涉及到减少许多具有不同值的重复密钥。我正在使用包选项 有没有一种简单的,也许是O(1)的方法来检索当前键的列表,而不必进行更复杂的表遍历、匹配或foldl 欢迎使用Erlang或Elixir :ets.new(:cache, [:bag, :named_table, :protected]) 我有一个由整数索引的原子键的静态映射,我用它来帮助插入。但并不是所有的钥匙都用过 chunk_ke

如何扩展/继承elixir模块?

假设长生不老药库定义: defmodule Decoder do def decode(%{"BOOL" => true}), do: true def decode(%{"BOOL" => false}), do: false def decode(%{"BOOL" => "true"}), do: true def decode(%{"BOOL" => "false"}), do: false def decode(%{"B" =&g

Elixir mix.exs依赖项声明中的版本正确

我有一个mix.exs文件,它有一些依赖项: def deps do [{:nadia, "~> 0.4"}] end 假设我想将Nadia更改为0.3版。我很难做到这一点 更改为mix.exs后,我无法为Nadia获得0.3版。mix deps.update或mix deps.unlock&&mix deps.update都不能帮助我 我相信有办法做到这一点;我就是找不到 提前谢谢 需求~>0.3给出0.4.0的原因是~>0.3相当于>=0.3.0和=0.3.0和0.3.0:

Elixir 长生不老药:治疗符号

我写了一个很棒的标语: defmodule Sigiltest do @“医生” 一个很棒的标志! ###用法 iex>~a{我爱长生不老药} “我喜欢长生不老药,太棒了!" """ def sigil_a(内容、标志)do “{content},太棒了!” 终止 终止 以下是测试模块: defmodule SigiltestTest do 使用ExUnit.Case doctest Sigiltest 终止 当我运行混合测试时,我得到以下输出: Compiled lib/sigiltest

如何调用:elixir中的ets.fun2ms?

可能吗?如果是,怎么做 以下代码在IEX中执行 但是,编译后的代码会生成运行时错误 :ets.fun2ms(fn({a,b}) -> a and b end) 错误如下:我想知道如何正确调用 ** (exit) exited in: :ets.fun2ms(:function, :called, :with, :real, :fun, :should, :be, :transformed, :with, :parse_transform, :or, :called, :with, :a

Elixir 创建父项时,上的Exto.InvalidChangesetError有许多关系

我目前正在编写Phoenix的代码,遇到了一个让我困惑的错误 当我运行Rumbl.TestHelpers.insert\u user ** (Ecto.InvalidChangesetError) could not perform insert because changeset is invalid. * Changeset changes %{name: "Some user", password: "supersecret", password_hash: "$2b$12$ZaSx6

在Elixir中的defstruct中使用@type指令。未对该字段执行运行时类型检查

我理解如何使用@type指令定义用户定义的类型。到目前为止,我只在函数规范中见过它的用法。我很想知道它的使用是否可以扩展到结构,使参数和数据类型之间紧密耦合 我开始用一个示例程序进行探索 iex(1)> defmodule Result do ...(1)> @type t ::%__MODULE__{ status: String.t, value: integer} ...(1)> defstruct status: "OK", value: 100 ...(1)&

Elixir 使用xmerl读取大型XML文件会使节点崩溃

我有以下代码可以读取wikipedia转储文件(~50 GB)并根据请求交付页面: defmodule Pages do def start_link(filename) do pid = spawn_link(__MODULE__, :loop, [filename]) Process.register(pid, :pages) pid end def next(xml_parser) do send(xml_parser, {:get_next,

Elixir 为什么Phoenix(Exto/Postgresx)在开发中无法连接

我正在开始我的长生不老药/凤凰之旅,我的博士后连接有一些问题 当我启动服务器时,我得到: $ mix phoenix.server [error] Postgrex.Protocol (#PID<0.214.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused [error] Postgrex.Protocol (#PID<0.217.0>

Elixir 蒸馏厂版本的配置

我浏览了文档,但无法运行基本的Phoenix应用程序。我是这样做的: mix phoenix.new test_app --no-ecto cd test_app 然后我更新了mix.exs文件,以包括酿酒厂部分: [...] defp deps do [{:phoenix, "~> 1.2.0-rc"}, {:phoenix_pubsub, "~> 1.0.0-rc"}, {:phoenix_html, "~> 2.5"}, {:phoenix_liv

Elixir 如何在Phoenix中创建视图属性?

有人能解释一下控制器中的变量是如何神奇地作为模块属性出现在视图中的吗 例如,此渲染/3在控制器中: defmodule MyApp.UserController do def show(conn, %{"id" => user_id}) do render conn, "show.html", user: Repo.get(User, user_id) end 创建可在模板中使用的属性@user,如: Hello, <%= @user.first_name %>

如何在elixir中获取结构名称?

假设我有一个结构,struct=%MyApp.MyModel{filled_with_data:“true} 如何获取结构名(MyApp.MyModel)它存储在名为\uuuuuuuuuuuuuuuu的字段中,因此struct.\uuuuuuuuuuu结构==MyApp.MyModel结构携带__ 在他们身上。所以 struct.__struct__ 如果需要将结构的名称作为不带“Elixir.”前缀的字符串,但保留任何模块前缀,则应执行以下操作: name = your_map.__stru

检查返回-将字符串转换为elixir中的映射

假设我有一张地图:%{a:b}。我正在检查它并得到%{a:\'b\'}。如何将此字符串转换为elixir中的地图?有什么优雅的方法吗?有一些函数允许您将Elixir数据类型封送/解封到:erlang.term\u to\u binary和:erlang.binary\u to\u term。然后可以将二进制字符串写入文件以供以后使用。但是,生成的二进制文件不是很可读 inspect协议旨在让人们读取而不是封送数据结构。如果您避免了诸如Pid或Reference等不透明类型和不完整列表的明显缺陷,

Elixir 长生不老药

我正在研究长生不老药,并试图用头尾法以某种特定形式获取数据 我有这类数据[“09:89-87:45”,“23:23-23:23”,“65:65-23:04”] 用头和尾巴?我可以把这些数据输入[[“09:89-87:45”]、[“23:23-23:23”]、[“65:65-23:04”]表格吗 我现在所做的工作不好 iex(14)> defmodule Gy do ...(14)> d

Elixir 如何正确创建插件模块?

我可以用这种方式创建自己的插件模块 比如说,我想检查请求中是否有头及其值,如果它们正确,继续,如果没有,终止当前请求并返回特定的状态和消息,可能是json 但是,不允许从插件模块返回html或json或任何其他内容,它只能修改在传递到控制器的过程中传递给它的连接结构 那我怎么做呢?我是否应该在其中添加某个密钥,然后在控制器中检查它?但这会造成很多重复,不是吗 # plug module def call(conn, default) do if condition1

Elixir Phoenix框架:将插入数据库的次数限制为每天一次

我想为上班族做一个“每日祈祷午餐”应用程序,使用。我想制作的模型是Votation,每个Votation都包含许多嵌入式模式(阅读了解嵌入式模式的信息)。模型如下所示: defmodule WhereToLunch.Votation do use WhereToLunch.Web, :model schema "votations" do embeds_many :restaurants, Restaurant timestamps() end @doc ""

Elixir 将参数传递给函数并通过"&&引用;

有没有办法缩短这些类型的方法调用: aaa = Enum.find(Statuses, fn(x) -> x.name == :pending end) 对这样的事情: aaa = Enum.find(Statuses, &==, [:name, :pending]) 也就是说,要将算术运算符“==”、结构字段名name和值:pending作为参数传递 您可以使用: aaa = Enum.find(Statuses, &(&1.name == :pending

Elixir 理解任意数量的论点?

有没有一种方法可以将列表中的列表进行理解?或者下一个最好的是什么 my_lists = [[1,2], [3,4], [5,6]] # ... magic ... do_a_for_with_these_lists &([&1,&2,&3]) # for a <- [1,2], b <- [3,4], c <- [5,6], do: [a,b,c] [[1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [2,

通过将地图条目转换为Elixir中的downcase来更新地图条目

如何通过将键的值作为初始值来更新映射中的值?也就是说,我想将字符串值转换为小写形式,如下所示: Map.update(m1, "key1", ???, &String.downcase/1) “?”中应该有什么,因为它需要初始值?由于初始值仅在键不存在时使用,因此您可以将nil作为默认值传入,如下所示: Map.update(m1, "key1", nil, &String.downcase/1) 由于该初始值仅在键不存在时使用,因此您只需传入nil作为默认值,如下所示: M

Elixir 加入Phoenix频道(或其他pubsub)时同步应用程序状态

我正在构建一个协作绘图板(例如r/place):有一个像素网格,用户可以随时更改,像素更新会传播到所有其他在线用户。我想用凤凰频道来播放像素的变化 我的问题是,当用户连接到服务时,如何正确发送当前应用程序状态 目前,我有一个ETS表格,其中包含绘图板状态。我可以在MyChannel中更新此表。在广播任何像素写入之前,请在/3中处理\u 我担心的是,在读取MyChannel.join中的当前状态和Phoenix订阅该频道的用户之间,另一个过程会更新状态 用户将获得应用程序状态的过时版本,并且他们还

Elixir-无法将Ecto.DateTime保存到Postgres数据库中,保存Ecto.Date在该数据库中有效

在Phoenix应用程序中,我想将会话记录保存到Postgres DB中,expires字段为12小时后。Mysession模型将expires字段设置为外部日期时间 型号 schema“sessions”做什么 字段:键,:字符串 字段:expires,exto.DateTime 字段:用户id,:整数 时间戳() 结束如果exto.Date起作用,数据库中字段的类型可能是Date而不是utc\u datetime(PostgreSQL中的时间戳)。将其更改为utc\u datetime可以

Elixir 通过关联在另一端查询某事物

我想通过多个关联查询筛选结果。我是否必须使用Elixir来完成这项工作,或者我可以使用EXTO在数据库中完成这项工作 安装程序 priv/repo/seeds.exs {:ok, invoice1} = Shop.Accounting.create_invoice(%{number: "1", issued_on: "2017-01-01"}) {:ok, invoice2} = Shop.Accounting.create_invoice(%{number: "2", issued_on: "

Elixir-通过管道操作符传递部分输出

在Elixir中使用管道操作符时,是否可以选择/指定从第一个函数传递到第二个函数的输出 例如,我分三步处理一个映射-我需要删除两个键,更新另一个键的值,最后弹出另一个键,我需要在以后的代码中使用该键的值。以下是我理想情况下能够实现的一个示例: for r <- records do {scope, record} = Map.drop(r, [:__struct__, :__meta__]) |> Map.get_and_update(:id, fn curre

Elixir 下载的文件已损坏

我正在尝试使用elixir中的Dropbox URL下载图像,代码如下: %HTTPoison.Response{body: body} = HTTPoison.get!("https://www.dropbox.com/s/fxot6tgw21mthg8/WeVnWhite-1.JPG") File.write!("image.jpg", body) 已使用file.write成功创建文件/2.但当我试图打开它时,它显示文件已损坏,并且文件大小也与原始大小不同。您正在下载Dropbox并将其

变更集Elixir/Phoenix的自定义验证

我有一个league模型,league有许多团队。我只希望一个用户能够创建一个球队每个联赛。我发现这个验证很棘手。这是我目前正在尝试的 def changeset(%Team{} = team, attrs \\ %{}) do team |> cast(attrs, [:name, :league_id, :user_id]) |> validate_required([:name, :league_id, :user_id]) |> one

Elixir 作为混合别名运行shell脚本

如何将shell脚本作为混合别名运行 我尝试了以下方法,但没有成功: defp aliases() do [ "test": [ "./scripts/test.sh" ] ] end defp aliases() do [ "test": [ "scripts/test.sh" ] ] end 每个返回值的变化如下: **(Mix)找不到任务“/scripts/test”您可以为此调用Mix.Tasks.Cmd任务: "test": ["cmd ./scri

Elixir 为什么(true | false&;false)的计算结果为true?

为什么以下表达式的计算结果为“true” 因为在长生不老药中,&&'的优先级高于| |。我想你想要的是 (true || false) && false # => false &&具有比| |更高的优先级,因此true | | | false&&false的计算结果为true | |(false&&false)您期望的结果是什么?一般来说,如果这样的语句中存在任何歧义,添加括号以确保计算顺序通常是一个好主意。“更强的关联性”并不完全正确。正确地说,&的优先级高于|,因此首

如何在Elixir中动态创建GenServer?

我需要在运行时创建进程,以保持不同的状态。 我在my:config中有一个用户列表,例如: config :backend, users: [user1, user2, user3] 是否可以循环浏览此列表并为每个列表创建一个受监控的代理或Genserver?假设confix.exs中的代码正确 config :backend, users: ~w[user1 user2 user3] 要动态启动受监督的子级,可以使用e。g、 在静态初始化代码中,启动DynamicSuperviso

Elixir 是否有混合phx选项来使用纱线而不是npm?

npm通常比纱线慢几倍,这就是Rails使用它的原因。Phoenix tasks是否也可以选择使用它而不是npm?如果没有,我会考虑一个PR.< /P> < P>简短的答案是否定的。 知道这一点很好,但这并不能解决编译和现场重新加载拾取纱线的问题。因为npm太慢了,我可能最终会选择凤凰城。

elixir不使用enum.each更新映射集中的值 map\u set=MapSet.new Enum.eachfiltered_list,fn x->map_set=MapSet.putMapSet.newmap_set,x

这里过滤列表是一个包含字符串的列表,但当我打印映射集时,它返回一个空集。为什么?对于过滤列表中的每个项目,您正在回调函数的作用域中创建一个新的映射集。您不能在回调函数中重新绑定上部作用域的map_集,尽管您可以读取它,但重新绑定它只会生成一个新的作用域变量。相反,您应该使用表达式的返回值。比如说 filtered_list = ["foo", "bar"] map_set = MapSet.new() # this is actually redundant map_set

Elixir 用于选择具有左联接子查询的记录的空白结构

我有一些类似的外部结构: defmodule MyApp.ForumCategory do 使用MyApp.Schema “论坛类别”模式 字段:名称,:字符串 字段:最后一个主题,:地图,虚拟:真 字段:last_post,:map,virtual:true 结束 结束 defmodule MyApp.ForumTopic do 使用MyApp.Schema “论坛主题”模式 字段:名称,:字符串 时间戳() 属于:论坛类别,MyApp.ForumCategory 有很多:论坛帖子,MyAp

Elixir 长生不老药:有没有更简洁的方法来运行任务?

我刚刚开始用长生不老药做实验。 1是否有更简洁的方法开始N? 2创建一个{symbol,task}与创建一个任务相比,我会更好吗 stocks=["bsx","wmt"] # assume this is a long-running function longfunc = fn(sym) -> "nyse:"<>sym end tasks = Enum.reduce(stocks, [], fn(x,acc) -> [Task.async(fn -> lon

如何在Elixir中将列表作为参数传递?

大家好,我对长生不老药很陌生,我想知道如何在长生不老药中作为参数传递列表,我应该使用什么方法?您可以将它作为所有其他参数函数(参数)传递。您只需像任何其他参数一样传递它:示例函数调用(示例列表)

Elixir 如何在测试中生成cowboy服务器? 背景

我有一个特定的测试,需要生成一个cowboy服务器,监听端口8082,返回一些静态响应 客观的 通常,我会在application.ex文件中启动一个牛仔进程,如下所示: def start(_type, args) do children = children([{Cowboy, scheme: :http, plug: MyServer, options: [port: 8082]}]) opts = [strategy: :one_for_one, name:

Elixir 是否可以将数组转换为函数的参数列表?

我有一个函数,可以接受n多个参数(它是devinus/sh函数),您可以在其中执行命令行程序并获得结果: 示例:Sh.file“-b”、“--mime类型”、文件路径 但是我想把参数放在一个数组中,这样它们就可以根据调用函数的方式而变化 我想要的示例: data = ["-b", "--mime-type", path_to_file] # a way of going through the array and turning it into the parameters for the S

Elixir 如何预加载关联?

我有下面的外胚层模型。当我试图渲染时,我得到一个错误。我如何修改@derive使其能够预加载?还是我必须写下实施方案?建议的处理方法是什么 ** (RuntimeError) cannot encode association :tilemap_layers from MyProject.Tilemap to JSON because the association was not loaded. Please make sure you have preloaded the associati

Elixir 如何在凤凰城使用会话连接?

我有一个身份验证插头,我想测试我的控制器。问题是这个插头里的线路坏了 user_id = get_session(conn, :user_id) 当我使用这种方法时,它总是为零(我以前使用过DirtyHack,但我不再想这样做): 我正在使用此conn发送修补程序请求,其会话用户\u id为nil。IO的结果。将conn放入我的插头: %Plug.Conn{adapter: {Plug.Adapters.Test.Conn, :...}, assigns: %{}, before_send:

Elixir进程未接收消息

我对长生不老药还不熟悉,目前正在学习这个过程。在一次练习中,我编写了一个乒乓球程序,从两个进程打印“乒乓”和“乒乓”。进程在接收到1或2条消息后总是死机。这是我的密码 defmodule Pingpong do def play do receive do {sender, :ping} -> IO.puts "ping" send sender, {self, :pong} play {sender, :p

Elixir 如何在使用捕获运算符时不使用所有参数?

我试图理解捕获操作符,以及在哪里可以使用它。下面是一个工作示例: %{name: "Daniel", dob: 2016, email: "daniel@gmail.com"} |> Enum.filter(fn({_k, v}) -> is_binary(v) end) |> Enum.into(%{}) 返回 %{电子邮件:daniel@gmail.com,名字:“丹尼尔”} 现在我尝试在Enum.filter/2中使用capture操作符,在这里我使用map对中的第二个

Elixir 为什么在setup_all块中插入数据库的对象不会出现在测试块中?

我在控制器和设置中进行了类似的测试,所有的插件都可以在测试块中使用。在这里,我试图在我的模型中允许同样的事情,但我似乎无法让它工作 我有一个测试如下: defmodule Faq.QuestionTest do use Faq.ModelCase alias Faq.Question setup_all do :ok = Ecto.Adapters.SQL.Sandbox.checkout(Repo) Question.changeset(%Question{}

Elixir 在EXTO中构建动态片段

我有一个外星查询: def sum(query) do from aggregate in query, select: %{ ones: fragment("coalesce(sum(ones), 0)"), twos: fragment("coalesce(sum(twos), 0)"), threes: fragment("coalesce(sum(threes), 0)"), fours: fragment("coalesce(sum(fours)

Elixir 如何在router.ex文件中使用Repo功能?

所以我在Phoenix 1.3 router.ex文件中做了一些元编程魔术 我需要使用Demo.Repo从数据库中获取一些数据,同时神奇地组装一些路由。如何在router.ex中使用此选项 当我运行mix phx.routes时,我得到一个错误: 回购演示。回购未启动,请确保它是您的监管树的一部分 我是否需要以某种方式编辑application.ex文件以在不同的监控树中启动它 以下是我所拥有的: router.ex文件 Utils模块 exto.Repo是一个GenServer,因此可以使用明

Elixir 如何在EXTO中编写where子句

我必须过滤一个在某些情况下可以接受逗号分隔值的索引。我和埃克托一起工作,没有凤凰(和牛仔) 我的索引将支持这样的搜索 /users?ids=1,2,3&email=simple@email.com&another=something 其中电子邮件字段不允许多个参数,并且id支持多个id 这就是我尝试过的 def list_all(query_params) do filtered_params = prepare_list_query(query_params)

上一页 1 2 ...  54   55   56   57    58   59   60  ... 下一页 最后一页 共 125 页