Elixir 长生不老药中的斜线符号是什么意思?

在Elixir文档中,他们一直使用带斜杠的奇数符号,例如: is_boolean/1 IO.puts/1 String.length/1 is_function/2 ++/2 我只是在猜测,但我想它指的是算术。但如果是这样的话,为什么文件中没有提到魔鬼?这并不是它的任何标准约定(至少,这不是我20多年来在It行业中见过的约定)。你猜对了,这是函数的算术性。之所以它是一个重要的信息(许多语言中通常不包含),是因为具有相同名称但不同算术数的函数是不同的函数-例如Enum.reduce/2和Enum

Elixir 长生不老药外星-未知领域

尝试复制trello示例,无法使变更集与ForeignKey一起工作: 迁移: defmodule Final.Repo.Migrations.CreateKw do use Ecto.Migration def change do create table(:kw) do add :keyo_id, references(:keyo), null: false add :users_id, references(:users), null: false

Elixir GenServer并行句柄调用

Phoenix框架上有一个应用程序 需要GenServer,它将检查一些值 这些值的验证从控制器开始(来自客户端的请求、GenServer值检查、客户端接收响应) 一旦handle\u调用是同步的,那么当10个客户端一次调用10个handle\u调用时会发生什么?所有10个呼叫将并行处理或按队列顺序处理?GenServer将只处理单个呼叫,其他消息将在邮箱中排队。如果需要同步进程,您可以允许这样做,但您必须考虑邮箱,它可能会在负载较重的情况下很快堆积起来,可能会在没有任何警告的情况下杀死VM 你

Elixir 使用exto.Multi在同一事务中更新表两次

考虑一个场景,您试图对银行事务的日志记录进行建模。交易具有金额、类型贷方或借方,并与账户关联 在添加新的银行交易的情况下,我可以这样做,而且效果很好: Multi.new() |> Multi.insert(:transaction, transaction_changeset) |> Multi.update(:account, account_changeset) |> Repo.transaction() 更新现有的银行交易稍微复杂一些。这是因为用户不仅可以更改金额,还

Elixir Phoenix将JSON解析为结构

基于,我知道如何使用Poison.decode/2将JSON解析为结构: defmodule User do @derive [Poison.Encoder] defstruct [:address] end defmodule Address do @derive [Poison.Encoder] defstruct [:street] end Poison.decode(response, as: %User{address: %Address{}}) 但我该如何告诉凤

Elixir 如何在结构中实现递归包含关系?

定义一个包含其自身类型结构数据的简单结构: defmodule MyNode do defstruct [:parent, :child] end 创建父节点和子节点: iex> p = %MyNode{} %MyNode{child: nil, parent: nil} iex> c = %MyNode{parent: p} %MyNode{child: nil, parent: %MyNode{child: nil, parent: nil}} 在父节点中指定子节点: i

在Elixir中部署时更改后端/模块?

如何实现一个可替换的后端(或基本上任何部分或模块),以便在Elixir中配置/部署时替换它 我的具体情况是一个简单的web应用程序(在本例中使用Phoenix,但我猜这个问题也适用于其他情况),其中我有一个非常简单的后端,使用Agent保持状态,但我认为未来需要能够或多或少地动态切换后端 我猜Ecto和Logger都在某种程度上做到了这一点,但作为长生不老药的新手,很难知道该去哪里寻找。这可以通过与主管的争论来解决。例如,Ecto的后端主管使用一个名为adapter的参数来指定应使用哪种数据库:

在elixir中定义匿名函数后显示的数字是多少?

当您在elixir中定义匿名函数时,会得到如下结果 #功能 我注意到这个数字是基于函数的算术性。所以1 arg函数总是 #功能 两个参数的函数始终是 #功能 三参数函数始终是 #功能 返回的数字是什么?它是如何派生的?该数字由编译器生成的索引和函数的唯一名称组成。请看下面的图片。它包含以下段落: "#Function<#{uniq(fun_info)}/#{fun_info[:arity]} in " <> "#{Inspect.Atom.inspect(mod)}#{ex

Elixir 特殊字符作为符号中的选项参数

在我学习长生不老药的过程中,我试图制作一个简单的符号来解析csv 我已经设法制作了一个sigil来实现这一点,但是我找不到一种方法使它能够处理特殊字符,例如 defmodule CommaSigil do def sigil_v(lines, []), do: parse(lines,",") def sigil_v(lines, delimiter), do: parse(lines,"#{delimiter}") defp parse(lines, delimiter) do

Elixir中模块的结构重用

实现结构重用的机制有哪些:定义一个结构,其中包含另一个结构的所有字段以及它自己的一些字段 我有这样的结构 defmodule VideoView do defstruct name: nil, description: nil, video_link: nil, ... end defmodule ImagesView do defstruct name: nil, description: nil, images: [], ... end defmodule Model3DView

Elixir 删除引用的数据库记录

我有两张桌子: 用户: id username password unique_index username (the schema has a has_many other) id user_id - references(:users) foo index user_id (the schema has a belongs_to user) 其他: id username password unique_index username (the schema has a has

Elixir 构建Phoenix应用程序的exrm版本时的回溯

将我的Phoenix应用程序目录从Macbook复制到Fedora VM后,我尝试构建生产exrm版本,但引发了一个异常: ==> Building release with MIX_ENV=prod. ==> Generating relx configuration... ==> Generating sys.config... ==> Generating boot script... ==> Performing protocol consolidation

Elixir 未为实现协议EXTO.Queryable

我正在尝试将Guardian实现到我的API中,并通过它进行登录以获取JWT。我正在看的教程是。问题是使用与示例中使用的用户模型类似的用户模型来实现登录。模型代码如下所示: defmodule PushflightServer.User do use PushflightServer.Web, :model use Ecto.Repo import Ecto.Query alias PushflightServer.Repo schema "users" do field

Elixir 使用:简单的一对一策略时的子参数

当使用:simple\u one\u for\u one策略时,我们指定要动态启动的子项: supervise([worker(FooServer, [])], strategy: :simple_one_for_one) 然后,我们使用以下类似的方法来启动子项: def start_child(arg1, arg2) do Supervisor.start_child(__MODULE__, [arg1, arg2]) end 各国(强调我国): 在:simple_one_for_on

Elixir 按指定顺序累积消息输出

我希望以指定的顺序累积不同进程发送的消息的输出 例如,我有一个PID列表[pid0,pid1]。如果我先得到pid0,那么就可以了。如果我首先得到pid1,那么在得到pid0之前不会发生任何事情 我知道这可以通过使用地图或关键字查找和在收到所有消息后排序来解决。然而,这可以通过模式匹配来实现吗 例如,编写这样的内容以确保它只尝试接收消息input\u pid(列表中的第一条消息): 让我们先看一个不起作用的示例,然后找到修复它的方法: caller = self pids = for x &l

Elixir 如何在<;%=对于%>;视图助手

我的代码中有: <%= for empresa <- @empresas do %> <%= render myProject.ComponentView, "smallPlacard.html", smallPlacard_id: "1", smallPlacard_class: "Company", smallPlacard_mainText: company.name %> <% end

Elixir 如何使用管道操作符将参数传递给匿名函数?

我在玩长生不老药。只是想知道是否可以使用pipe|>操作符将参数传递给匿名函数。这就是我的意思 a = [1,2,3] #=> [1,2,3] m = fn ([h|t]) -> [ h*h | m.(t) ] end #=> head squared and call m with tail. Not sure how to use & shortcut for this. m.(a) #=> [1,4,9] a |> m #=> undefine

Elixir 长生不老药参数错误

有人能帮我们解释一下为什么我们的论点是错误的吗?难道我们不应该这样检查真实性吗?关于长生不老药1.3 iex(1)> true and true true iex(2)> "true" "true" iex(3)> true true iex(4)> true and "true" "true" iex(5)> "true" and true ** (ArgumentError) argument error: "true" 从文档中: Elixir还提供了三个布

Elixir 插入后如何使用自定义预加载功能?

如何在回购插入后使用自定义模型功能预加载选定数据?我不会从控制器中的模型复制代码 在Post模型中: def preload_all(query) do tags = from(t in Tag, select: %{id: t.id, value: t.id}) from b in query, preload: [:user, tags: ^tags] end 在控制器中: case Repo.insert(changeset) do {:ok, post} ->

Elixir 长生不老药:如何计算字符串中列表项的数量

我正在尝试使用毒药解码以下json字符串 iex(1)> fetch(1) {:ok, "{\"name\":\"Anabela\",\"surname\":\"Neagu\",\"gender\":\"female\",\"region\":\"Romania\"}"} iex(2)> fetch(2) {:ok, "[{\"name\":\"Juana\",\"surname\":\"Su├írez\",\"gender\":\"female\",\"region\":\"A

Elixir 如何在渲染函数中动态更改模块名称

我希望能够在模板内的渲染函数中动态选择模块名称。所以我尝试了这个,但是我得到了错误: <%= render if i.compType == "mod" do MyProj.ModuleView else MyProj.ComponentView end, i.compName %> 最终结果将是: <%= render MyProj.ModuleView, "module.html" %> 或 最好的方法是什么?您只是缺少一对括号: <%= ren

Elixir 在EXTO中预加载嵌套关联

我有4个模型,它们关联为 表格 has_many :form_fields, FormField, on_delete: :delete_all has_many :fields, through: [:form_fields, :field] has_many :conditions, Condition, on_delete: :delete_all 字段 has_many :form_fields, FormField, on_delete: :delete_all has_many :

Elixir 关联的变更集函数

我有以下模式: schema "countries" do belongs_to :code, CountryCode, references: :alpha2 belongs_to :language, LanguageCode, references: :code field :text, :string timestamps end 我的问题是,如何为上述模式编写变更集函数 我试过: def changeset(model, params \\ %

在elixir中同时迭代两个列表

我有2个列表(也可以是另一种数据类型),表示2个向量时钟。如何同时迭代两个列表并验证此条件:w[k]您要查找的Enum.zip/2: def check(w, v, j) do Enum.zip(w, v) |> Enum.with_index |> Enum.all?(fn {{ww, vv}, k} -> k == j || ww <= vv end) end def检查(w、v、j)执行 Enum.zip(w,v) |>使用_索引枚举 |>Enum.a

Elixir 当n=0时,用于理解长生不老药

我想用a来理解长生不老药,循环n次,每次积累一些结果 例如: for i <- 0..n, y <- 1..3, do: y 对于i你的理解没有返回空列表的原因是因为范围0..0不是空的。如果运行0..0 |>Enum.map(fn x->x end),这一点很明显;您将返回[0]。x..y语法是“给我一组以x开头,以y结尾的数字”的缩写;毫不奇怪,从零开始并以零结束的所有整数的列表包含一个数字零,因此应该0..0 换句话说,0..n(转换为列表时)的长度始终为n+1。因此,对该列

Elixir Phoenix会话未被删除

我正在为Phoenix Elixir应用程序编写身份验证。我的浏览器管道中有一个插件,用于检查会话中的用户id。如果存在,我将用户添加到conn: 路由器 pipeline :browser do plug :accepts, ["html"] plug :fetch_session plug :fetch_flash plug :protect_from_forgery plug :put_secure_browser_headers plug

Elixir 长生不老药体外-如何插入/增加

我有一个模型,我想在凤凰城/长生不老药执行。该模型基本上计算用户花费金额的滚动总和。模型(收据)如下所示: --------------- | ID | Amount | --------------- | 1 | 0 | | ...| ... | | 5 | 4 | --------------- ID上有一个唯一的索引。我想在表中插入一个用户(我定义了ID),然后设置该用户不存在时的金额,否则将新金额添加到现有金额中。例如,执行: Repo.insert(Us

Elixir中条件语句中的访问值

是否可以访问某个条件的结果值?例如: cond do Map.get(values, :foo) -> IO.puts "Value: #{foo}" true -> IO.puts "No value" end 我想你想要这样的东西 cond do value = Map.get(map, :key) -> IO.puts "Value: #{inspect value}" true -> IO.

Elixir Phoenix/Exto变更集出现问题

我和外星变形金刚玩得很不开心。我试图简单地创建一个带有“空”变更集的新表单。点击控制器并调用Session.changeset(%Session{})行。然后点击Site.Session.changeset。在那里,cast调用失败,出现以下错误。下面是完整的堆栈跟踪。Elixir 1.4,雨伞应用程序 控制员: defmodule Site.SessionController do use Site.Web, :controller alias Site.Session def

生成惰性列表的Elixir函数

使用已知数量的流与此答案相关: 如何构建一个create_stream函数,以类似的方式嵌套任意数量的流,即: create_stream([1..1_000_000, 1..5_000_000]) #should be equivalent to: Stream.flat_map 1..1_000_000, fn i -> Stream.flat_map 1..5_000_000, fn j -> [{i, j}] end end 及 这很可能不如手动嵌套St

Elixir Hound:visible_text/1返回一个空字符串

我正在尝试与hound进行集成测试。 测试如下所示: defmodule RedBeardWeb.UserCanRegisterTest do use RedBeard.DataCase use ExUnit.Case use Hound.Helpers hound_session() ... name = find_element(:class, "header__user_name") name_text = visible_text(name

在Elixir中,将_放在叶节点是列表而不是贴图的位置

所以嵌套映射不能直接更新,我们必须使用put_in。例如: iex(1)> m = %{a: %{b: 1}} %{a: %{b: 1}} iex(2)> m[:a][:b] 1 iex(3)> m[:a][:b] = 2 ** (CompileError) iex:3: cannot invoke remote function Access.get/2 inside match (stdlib) lists.erl:1354: :lists.mapfoldl/3 i

Elixir 基于理解的模板化函数

假设我们有以下实现: defmodule SomeModule do @celcius_coefficient 800 @rheinan_coefficient 900 @fahrenheit_coefficient 1000 @available_units [:celcius, :rheinan, :fahrenheit] def foo(some_struct) do some_var = get_var(some_struct, :var_name)

Elixir 你如何从凤凰控制器内部与长生不老药代理沟通?

当一门语言的创造者回答你的问题时,在它的生命中足够早地学习它是很棒的!好吧,我的问题是-如何从Phoenix controller方法中与代理通信?我在hello_blockchain/monitor.ex中看到了这个: defmodule HelloBlockchain.Monitor do def start_link do Agent.start_link(fn -> %{} end) end def put(pid, key, value) do Ag

Elixir 合并可能不存在的嵌套映射的正确方法

给出两种可能的输入: a=%{inner:%{hello::world} 或 a=%{} 我想将b=%{foo::bar}合并到映射中以生成: %%{inner:%%{foo::bar}在第一种情况下,或 %%{internal:%%{hello::world,foo::bar}}在第二行 我可以用计算机解决它 merged = Map.get(a, :inner, %{}) |> Map.merge(b) put_in(a, [:inner], merged) 但是有更好的内在方式吗?

Elixir 使用主管时启动链接/3的处理结果

我设置了一个主管来监督websocket: children = [ %{ id: Slack.Bot, start: {Slack.Bot, :start_link, [MyBot, [], "api_token"]} } ] opts = [strategy: :one_for_one, name: MyBot.Supervisor] Supervisor.start_link(children, opts) MyBot通过websocket发送消息时会收到各种回调

在Elixir中编写嵌套循环的更好方法

请建议更好的方法(更多的长生不老药方法)将下面的C代码写入长生不老药 int some_num = 0; for(int i = 0; i < 100; i++){ for(int j = 0; j < 1000; j++){ for(int k = 0; k < 10000; k++){ some_num += 1; } } } printf("%d", some_num); int some_num=0; 对于(int i=0;i

Elixir 通过Plug.Conn.send_文件提供SPA服务

我通过凤凰城为我的水疗中心服务,决议如下: 当我移动到发布版本时,spa会出现在一个具有版本名称的目录中,例如: /opt/appname/lib/appname-0.0.1/priv/static/index.html 这似乎是一种脆弱的方法,因为每次发布新版本的应用程序时,新版本都会导致此链接中断 是否仍然可以从相对路径为应用程序提供服务?由于它位于app\u name目录的priv中,您可以执行以下操作: Application.app_dir(:app_name, "priv/stat

Elixir 带长生不老药的深层递归

我正在开发一个文件系统seaveedfs。我们在上面用适当的目录结构保存了文件,如server/camera\u id/snapshots/recordings/year 我正在尝试删除年下的空文件夹 def clean do 摄像机= 摄像机 |>预加载(:所有者) |>订购人(描述::创建地点) |>Evercam.Repo.all() 年份=[“2015年”、“2016年”、“2017年”、“2018年”、“2019年”] 服务器=[@seaweedfs\u新、@seaweedfs\u旧、

Elixir 长生不老药模式匹配图

我正在尝试模式匹配映射中的一个键值,并放弃其他所有内容 identity = RedditOAuth2.get_identity(access_token) # here is how i am getting the key "name" right now. name = Map.get(identity, "name") #---------------------------------------- # How would i do something like this %{"nam

如何在Elixir Temple模板中插入未缩放的文本?

我正在试用长生不老药库,在转义值方面遇到了一些问题 基本上,我有一些文本,我不想被转义,只是在它的原始状态添加 例如,在我的控制器中: conn |> assign(:scripts_js, "alert('ok')") 然后在模板中,我执行以下操作: script do text @scripts_js end 然而,其结果是: 警报(';正常';) 我还尝试了部分: script do partial @scripts_js end 但结果也没有发生 我

Elixir 如何使用exto.Changeset.check\u contstraint/3检查多个字段上的相同约束?

我最终希望在我的几个字段上有一个检查约束,如果其中任何一个字段不为null,那么我不希望其中任何一个字段为null 我对此有一个工作检查约束,但当我将它应用到我的exto.Changeset使用时,一次只能在一个字段上使用它 所以我想我会把它们用管道连接起来。如果约束在多个字段上出错,它会将错误添加到每个字段 像这样: %Ecto.Changeset{ valid?: false, errors: [*error_for_field_one*, *error_for_field_

如何使用phoenix stack运行Elixir文件

我是长生不老药生态系统的新手。我的Elixir/Phoenix应用程序中有一个导入脚本,当我尝试从命令行运行它时,它不起作用,因为Phoenix堆栈没有用我的命令加载 以下是我试图运行的内容: elixir lib/mix/tasks/import/users.ex 我得到:**(CompileError)lib/mix/tasks/import/users.ex:7:module mix.exto未加载且找不到 有没有办法告诉我的命令加载堆栈 这是我的users.ex import defm

Elixir 使用cons运算符“|&引用;使用关键字列表

我试图定义一个函数,其中我指定了关键字列表的一部分,然后将其余选项匹配为尾部 def my_func(foo: 22, bar: 42 | baz) do IO.inspect(baz) end my_func(foo: 22, bar: 42, another_arg: 11, even_more_args: 12) 其想法是将baz作为一个关键字列表,其中包含[另一个参数:11,甚至更多的参数:12] 此操作无法编译,失败并出现以下错误: 错位运算符|/2 |运算符通常在括号之间用

Elixir:从查询参数访问元组列表并对其进行迭代

我通过如下的查询参数获取输入:127.0.0.1:8000/对?a=[{A1,B1},{A2,B2},{An,Bn}]。我需要访问该元组列表并对其进行修改,这样结果就是一个包含两个元组的列表,第一个元组包含原始列表中每个元组的第一个元素,第二个元组包含每个元组的第二个元素(例如[{A1,A2,…,An},{B1,B2,…,Bn}]): Input: [{a,5},{2,x},{r,r}] Output: [{a,2,r},{5,x,r}] 问题是,如果我这样做: conn = fetch_q

如何在Elixir/Phoenix中关闭表单中输入的自动完成功能?

例如,这需要如何更改以防止名称字段中的自动完成 <%= form_for @changeset, @action, fn f -> %> <%= label f, :name %> <%= text_input f, :name %> <%= error_tag f, :name %> <% end %> %> 您只需为表单和文本输入设置自动完成:“关闭” <%= form_for @changeset, @a

Elixir 更新与cast_assoc的关联

我有两个表用户和公司。用户属于一个公司,一个公司有很多用户 我有一个表单,可以将用户添加到公司中,该公司是作为嵌套表单实现的(inputs\u for),因此在公司的变更集中,我调用了cast\u assoc def changeset(company, attrs) do company |> cast(attrs, [:name, :email]) |> validate_required([:name, :email]) |> cast_a

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