Elixir 是否有python的等效模块';是时候用长生不老药了?

在python中,您可以使用timeit模块为代码的小部分执行时间计时 Elixir中是否有等效工具?最简单的工具是使用Erlang的:timer模块,以及它的tc变体之一。它以微秒为单位返回执行时间,并以元组形式返回函数结果。要对匿名函数计时,可以执行以下操作 {time, res} = :timer.tc fn -> :timer.sleep(1000) end # {1000575, :ok} {time, res} = :timer.tc(fn(ms) -> :timer

如何使用Elixir制作单文件脚本,而不产生多余的输出?

我想做一些看起来应该很简单的事情,即制作一个脚本,输出问候语,而不是其他。此脚本非常简单,不需要多个文件。以下是我尝试过的: [ ~/elixir ] cat hello.exs #!/usr/bin/env iex IO.puts "Hello world!" :init.stop [ ~/elixir ] ./hello.exs Erlang/OTP 17 [erts-6.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [k

Elixir 如何运行具有相同名称的函数?

我是新长生不老药,真的很喜欢它。我在尝试使用同名函数时遇到了麻烦。这里有一个例子 defmodule ChangeName do def convert(:captilize, name), do: String.capitalize(name) def convert(:lower, name), do: String.downcase(name) end 我正在使用iex和ChangeName.convert.captilize的基本调用,但如何运行这些函数 谢谢您给出的示例没有

Elixir 在Phoenix Framework中向整数添加分隔符

假设我有一个像123456789这样的数字,我想把它转换成一个字符串,然后把它表示成123456789或123456789等等。什么是最好的方法呢?我认为没有内置的方法。对于常规格式,您可以使用以下一种方法: 123456789 |> Integer.to_char_list |> Enum.reverse |> Enum.chunk_every(3) |> Enum.join(",") |> String.reverse # "12

Elixir 基于嵌入式模型的星外告警

我在施法时得到这个警告 警告:不推荐使用cast/4进行铸造嵌入,请使用 请改为使用/3 我有一个模范组织 defmodule Bonsai.Organization do use Bonsai.Web, :model alias Bonsai.OrganizationSettings schema "organizations" do field :name, :string field :currency, :string field :tenant,

Elixir 从Timex.date/1传递结果时,为什么在Timex库Timex.compare/2中收到ArgumentError

使用Elixir 1.2.4并使用Timex 2.1.4作为依赖项,我运行以下代码: Timex.compare(Timex.date({2015,12,1}),Timex.date({2016,1,1})) 会因错误而中断: %ArgumentError{消息:“参数错误”} 然而,如果我跑步: Timex.compare(Timex.Date.now,Timex.Date.now) 我收到一个期望值(0或“等于”) 当我IO.inspect我的Timex.date/1调用的结果时,我看到的是

Elixir 用于多个使用者的GenStage分区调度器?

假设制作人获得的事件如下所示: %{somedata: [], analyze: true, test: true} 我有两种不同类型的消费者。如果analyze:true,第一个只关心事件,如果test:true 我可以从文档中找到如何将事件发送到1个分区(生产者),如果事件分析和测试都为真,我可以同时发送到这两个分区吗?或者,如果两者都是假的,则为“无” 其他选择是:向所有人广播,如果类型错误,则跳过消费者中的工作,这听起来不是个好主意——或者让不同的制作人负责不同类型的工作。我知道这已经

Elixir:将深度嵌套的api响应转换为映射

将下面这样的api响应解析为所需格式的最佳方法是什么?通常我会使用Enum.reduce,但由于映射中嵌套了列表,我不确定如何构建累加器 api_resonse = [ %{"meta" => %{"labels" => %{"app" => "api-app"}}, "spec" => %{"container" => [%{"resources = %{}, image" => "gcr"}]}, "stat

Elixir 更高级:与长生不老药苦艾酒协会

我的博客应用程序有一个Post模型,其中有许多评论 schema "post" do field :title, :string field :content, :string belongs_to :owner, MyApp.Accounts.User, foreign_key: :owner_id has_many :comments, MyApp.Content.Comment, foreign_key: :post_id timestamps() end 我也

Elixir 无法打印二进制变量

我声明了一个简单的变量 h = "a" 当我尝试时,我得到 > ** (ArgumentError) argument error > (stdlib) eval_bits.erl:101: :eval_bits.eval_exp_field1/6 > (stdlib) eval_bits.erl:92: :eval_bits.eval_field/3 > (stdlib) eval_bits.erl:68: :eval_bits.expr_gr

Elixir 长生不老药中的种族状况测试

当我需要使用(…)|>from(…)>lock(“for UPDATE”)测试一个方法并确保该行将被其他进程阻止时,我正在尝试为一个案例编写一个测试。我试着写这个测试: defmodule Chain.BalanceTest do use Chain.DataCase describe "concurrent" do setup do {:ok, %Chain.Address{id: id}} = Chain.Address.create_address(%{use

使用elixir拦截HTTP请求

我不熟悉长生不老药。我试图寻找一个使用elixir拦截HTTP请求的包,这样我就可以在后端处理它。我之所以需要elixir是为了实现速率限制错误,我发现hammer具有简洁的语法和重要的功能(docs at-)。实现如下-如果是速率限制错误,则会引发速率限制错误,如果不是,则会重定向到实际应用程序(这不是使用elixir完成的)。这里的问题是,check\u rate函数使用bucket ID作为参数,而不是URL。我有没有办法拦截请求并检查速率限制错误?如果您能用示例代码解释,我将不胜感激。如

Elixir 如何将私有函数抽象到实用程序库中?

假设我有一堆代码,如下所示: def dirs(path, regex_dir \\ ".+") do path |> normalize_path |> do_dirs([], regex_dir) end # list of bitstrings defp normalize_path([path | rest]) when is_bitstring(path) do [path | normalize_path(rest)] end # list of ch

使用Elixir Exto,我如何在迁移中添加多个关系?

我想写这样的东西: defmodule JobHunt.Repo.Migrations.CompaniesHaveManyJobs do use Ecto.Migration def change do alter table (:companies) do add :jobs, :has_many, Job end end end 使用此迁移运行mix-exto.migrate会出现错误,那么正确的方法是什么?您应该将所需的外键添加到作业表中: de

Elixir 长生不老药:模式匹配还是守卫

我很好奇,在定义函数时,什么时候应该使用模式匹配vs-guard子句 例如,模式匹配: defmodule Exponent do def power(value, 0), do: 1 def power(value, n), do: value*power(value, n-1) end vs保护条款: defmodule Exponent do def power(value, n) when n==0, do: 1 def power(value, n), do: val

Elixir exrm未能生成发布版本

我试图在elixir项目中使用exrm,但它显示出一种非常神秘的行为。这是我的mix.exs: defmodule MyApp.Mixfile do use Mix.Project def project do [app: :my_app, version: "0.0.1", elixir: ">= 1.0.5", build_embedded: Mix.env == :prod, start_permanent: Mix.env

Elixir 如果第一个条件失败,如何为变量指定默认值?

我在Ruby中使用了以下表达式: env=opts.env| |“staging” 如何用长生不老药书写 编辑: “长生不老药”中的这个表达不起作用: case Repo.insert(changeset) do {:ok, opts} -> env = opts.env || "staging" 错误: ** (KeyError) key :env not found in: %Myapp.App{__meta__: #Ecto.Schema.Metadata<:lo

Elixir 如何在运行时配置EXTO?

根据,我在config/config.exs文件中有以下的EXTO配置: config :my_app, MyApp.Repo, adapter: Ecto.Adapters.Postgres, url: "postgresql://postgres@localhost/myrepo", size: 20 如果我的理解是正确的,config.exs将在编译时进行计算 有没有办法在运行时执行此配置步骤 这适用于将作为编译二进制文件分发的应用程序(通过exrm)。最终用户应该能够通过标

为什么在Elixir中使用do/else关键字来表示if?

我一直在学习长生不老药,我有点好奇用不同的方法来做一行if/else 我从 if left_side_wins?(p, c) do {"Humanity", p, c} else {"The Machine", c, p} end |> print_winner 。。。为两位获胜者正确地传输元组。但这不 if left_side_wins?(p, c), do: {"Humanity", p, c}, else: {"The Machine", c, p} |> print

Elixir 埃克托不停地说;“未知数据库”;

我正试图使用exto.migrate在mysql会话上安装表 但是,即使成功创建了exto.create,exto.migrate也会失败,并显示以下错误消息: 15:53:20.563 [error] GenServer #PID<0.319.0> terminating ** (stop) %Mariaex.Error{mariadb: %{code: 1049, message: "Unknown database 'msg_gtw_dev'"}, message: nil}

HttpProxy漏洞是否适用于Elixir应用程序?

我应该为使用nginx代理的Elixir/Phoenix应用程序重置代理标头,还是该平台不受影响?Cowboy不使用cgi,因此这不适用 另外,如果您不使用http库来调用底层服务,那么这将不适用。如果您这样做了,并且那些http库没有使用http\u代理environment变量来设置代理,那么您就没事了。Hackney(这是HttPoison的基础)似乎没有做到这一点,您需要通过调用connect\u proxy/5函数来设置代理 医生说 Transport = hackney_tcp_tr

Elixir宏,引用和取消引用

我正在学习长生不老药,并尝试使用宏系统。 我试图使一个变量对一个块可用,该块将由宏与其他代码包装,但我显然做错了什么 这是我的起点宏,它是有效的。我意识到有更多的惯用方法来迭代Elixir,我写它只是为了练习: defmodule Loops do defmacro times(n, [do: block]) do quote do Enum.each(1..unquote(n), fn(_) -> unquote(block) end) end end

Elixir 代码生成与预期不同

我正在按照《凤凰城编程》(Programming Phoenix)一书构建给定的Rumbl应用程序。我的问题与我们使用生成器自动创建许多功能的章节有关。使用的命令是: $ mix phoenix.gen.html Video videos user_id:references:users url:string title:string description:text 现在的问题是,在一些地方,书中给出的代码和我得到的代码之间存在差异。一个很好的例子是web/models/video.ex模块

Elixir 如何获取表示当前时间的exto.DateTime值?

我想得到一个表示当前时间的exto.DateTime值 我该怎么做呢?现在使用DateTime.utc和castit。 现在使用DateTime.utc_和castit。 虽然DateTime.utc|u now>exto.DateTime.cast有效,但使用exto.DateTime.utc 基本相同,但默认精度不同: iex(30)> DateTime.utc_now |> Ecto.DateTime.cast {:ok, #Ecto.DateTime<2016-09-2

Elixir 长生不老药-尝试/捕捉vs尝试/拯救? 背景

try/rescue和try/catch都是Elixir中的错误处理技术。根据介绍指南中的说明 可以使用try/rescue构造来挽救错误 另一方面, throw和catch保留用于无法检索值的情况,除非使用throw和catch 怀疑 我有一个简单的理解,rescue是针对错误的。而catch用于任何值 但是, 什么时候应该使用Elixir中的错误处理机制 它们在细节上有什么区别 我应该如何选择一个在特定用例中使用 “除非使用throw和catch,否则无法检索值的情况”到底是什么 这是一个

Elixir 为主键和验证生成自定义编号

我有以下模式: @primary_key false schema "companies" do field :number, :integer, primary_key: true field :name, :string field :street, :string field :zipcode, :integer field :location, :string

Elixir 使用Enum.map时在结构内部设置值

假设我有这样的结构: results = %{page: page_numer, period: period, result: [%Entry{}, %Entry{}]} 我想给result.result中的每个%Entry{}添加一些数据,如下所示: result.result |> Enum.map(fn entry -> entry.page = results[:page] entry.period = results[:period] end) 有可能

Elixir 按父模型查询--“quot;。。。。不是有效的查询表达式";

我有一个ParentModel,ChildModel1和ChildModel2。ParentModel有许多ChildModel1,ChildModel1有许多ChildModel2 现在,我想显示通过ChildModel1.parent\u model.id进行筛选的ChildModel2列表。下面是一个简化的代码: def index(conn, %{"parent_model_id" => parent_model_id}) do child_model2_items = whe

Elixir 长生不老药管理器:无效\u子\u规范

我是长生不老药的新手,现在跟随JoséValim的帖子 当我遇到以下错误时,我很难让主管启动一个孩子: iex(1)>Portal.shot(:橙色) {:错误,{:无效的子规范,[:orange]} 非常感谢您的帮助 这是门户模块 defmodule Portal do use Application def start(_type, _args) do import Supervisor.Spec, warn: false children = [ wor

Elixir 如何在保存回调之前将EXTO变更集设计为true

我做了一个简单的前保存转换,并了解到phoenix使用EXTO changest执行此任务 我的阶段模型有一个位置属性,该属性默认为当前最大值+1,因此尝试如下实现: 舞台模型: def changeset(struct, params \\ %{}) do struct |> cast(params, @required_fields, @optional_fields) |> validate_required([:name]) |> s

Elixir 使用HTTPoison的HTTP 1.0请求

如何使用HTTPoison发出HTTP/1.0请求?我不知道它使用的是哪个版本,但我假设默认情况下它不是1.0 我正在与一些名为MoneyWorks的会计软件集成,它们 我在HTTPoison文档中没有看到关于这个的任何内容,所以我去了Hackney文档,因为它是建立在这个基础上的。也没有看到任何内容。在本例中,我将使用它,正如Github文档所述,它支持HTTP 1.0。也许更好的主意是从ibrowse开始,这是建立在ibrowse基础上的 正如您所写的,没有关于支持Hackney这个版本的信

Elixir 将变更集添加到预加载

我试图在一个预加载的映射中添加一个变更集,以防没有找到预加载,但我不知道如何插入变更集;有什么想法吗 我的变更集已打印出来,但在IO.inspect(项目)中没有任何迹象 我的变更集已打印出来,但在IO.inspect(项目)中没有任何迹象 Map.put(项,:变更集,变更集)不会更改项,它将返回一个新的项 尝试: def select(conn, %{"list_id" => list_id}) do list = Repo.get!(List, list_id) list_i

Elixir Agent.start\u link/2中没有匹配的函数子句

我想尝试在Supervisor中用一行代码启动代理,用于测试: iex(1)> {:ok, pid} = Supervisor.start_link([{Agent, [fn -> 42 end, name: :test]}], strategy: :one_for_one) ** (EXIT from #PID<0.115.0>) evaluator process exited with reason: shutdown: failed to start child

Elixir 基于map的cond和模式匹配

在phoenix应用程序中,当用户提交特定表单时,lat和lng根据地址计算 lat和lng可以在未进行更改的情况下保存在changeset.data中,也可以在提交更改的情况下保存在changeset.changes中 我在变更集中对lat和lng执行其他操作,但我需要知道坐标在哪里。我想做的是: cond do # Always use new coordinates if possible %{lat: lat, lng: lng} = changeset.changes -&g

Elixir 是否可以在单词列表符号中转义空格?

我正在尝试创建一个包含阿根廷所有省份的atom列表。由于其中一些是由多个单词组成的,我需要避开空格 ~w[ Buenos\sAires Capital\sfederal Catamarca Chaco Chubut Corrientes Córdoba Entre\sRíos Formosa Jujuy La\sPampa La\sRioja Mendoza Misiones Neuquén Río\sNegro Salta San\sJuan San\ Luis Santa\s

Elixir phoenix是否有与Rails';schema.rb?

Rails’是一种非常方便的获取数据库状态引用的方法。我可以直接访问pg或mysql客户端,描述表以获得相同的信息,但这样做不太方便 Elixir/Ecto是否有类似的功能或方法来生成模式表示?您可以使用: mix-exto.dump您可以使用: mix-exto.dump谢谢,如果你不仅仅是一条评论,很乐意将其标记为答案:-)谢谢,如果你不仅仅是一条评论,很乐意将其标记为答案:-)

Elixir 凤凰城-改变列顺序

因此,我正在创建一个用于向数据库中的模型添加一个新列的EXTO迁移,我想更改列的顺序,因为这个新列被放在列的末尾,所以我尝试这样做: def change do alter table(:users) do add :password_hash, :string, after: :email end end 但它似乎没有效果,也没有抛出错误 PD:我使用的是mariadb。由于您没有编写要使用的数据库,我假设PostgreSQL不支持列重新排序。有一些黑客的解决方法,当然不是在

Elixir 在Phoenix 1.3中,如何与上下文建立多对多关系?

我试图理解凤凰城1.3的背景 我理解上下文的可分性(在我看来,这是微型应用程序,具有明确定义的API边界),但当我试图弄清楚如何在它们之间建立多对多关系时,我很挣扎 在构建slack克隆的情况下,一个用户可以有多个聊天室,而一个聊天室可以有多个用户 在基于“模型”的方法中,您可以创建一个中间表user\u rooms(带有user\u id、room\u id字段),然后通过进行连接 让我困惑的是: 如果我想让这些表保持真正的孤立,我真的想加入表吗?这没有什么区别 如果我必须保留我的中间表us

Elixir 使用蒸馏器使用单个文件部署? 背景

我现在需要部署一个OTP应用程序。为了实现这一点,我使用了酿酒厂。我的目标是向PROD机器传递一个自给自足的文件,该文件包含所有内容,不需要提取 通常的路线 大多数使用酿酒厂的人都知道通常的路线: 运行MIX\u ENV=prod MIX release 将build/prod/rel//releases//.tar.gz中的tarball复制到部署服务器 拔跗骨 运行代码 客观的 我的目标是消除步骤3。我不想提取任何东西,我只想复制发行版并运行它,就像sudo可执行文件一样 –可执行文件 根据

Elixir 长生不老药凤凰插头和放置位置

我目前正在学习长生不老药凤凰框架。我现在陷入困境,是关于如何使用forward命令 这里写着,现在不需要学习Plug,所以如果我想尝试forward命令,我可以将Plug的实现复制到我的应用程序中。但具体在哪里?我试着去寻找它,试着使用我发现的东西,但我做错了什么 这是我的\lib\hello\u web\router.ex文件中的范围: scope "/", HelloWeb do pipe_through :browser # Use the default browser stack

Elixir 是否有一个在空“中嵌套模块的约定?”;“家长”;模块?

假设我在一个应用程序中创建多个助手模块: defmodule MyApp.Helpers.Uri do @moduledoc”“” 字符串帮助程序的集合。 """ 结束 defmodule MyApp.Helpers.Crypto do @moduledoc”“” 加密助手的集合。 """ 结束 创建一个空的“父”模块是一种好的做法吗 defmodule MyApp.Helpers做什么 @moduledoc”“” 收集所有我的应用程序助手。 """ 结束 我想不会,因为从我阅读的所有代码来

尝试编译argon2_elixir时nmake失败

我正试图将argon2_elixir添加到我的phoenix项目中,但在编译时出现以下错误: mix compile ==> argon2_elixir Microsoft (R) Program Maintenance Utility Version 14.00.24210.0 Copyright (C) Microsoft Corporation. All rights reserved. makefile(34) : fatal error U1000: syntax erro

Elixir 合并两列并搜索它们

我有一个查询,我们可以根据名字和姓氏进行搜索。它的工作原理如下: |> where( [user], ilike(user.first_name, ^string) or (user.last_name, ^string) ) 它很好用。现在我想搜索全名,即名+姓。我尝试过博士后的这种方法。如果我在这个查询中同时传递名字和姓氏,它将返回空 |> where( [user], ilike(user.first_name, ^string) or ilik

如何使用elixir自定义任务启动持久cowboy服务器

我正在尝试使用cowboy和plug在elixir中构建一个非常简单的Http服务器。如果我运行iex-S mix并且只要打开iex,它就可以正常工作。所以我决定创建一个自定义任务,它启动服务器,但立即结束。我怎样才能使它持久?随此问题附上我的任务、应用程序和端点文件。我将非常感谢任何解决方案 server.ex在lib/mix/tasks/server.ex中 lib/MinimalServer/endpoint.ex中的endpoint.ex mix minimal_server.serve

指定需要Elixir Phoenix中经过身份验证的用户的资源路由

我正在使用Elixir Phoenix应用程序中的用户登录、注册和身份验证。它附带了一个:require_authenticated_user插件,用于确定特定路由是否要求用户在访问之前进行身份验证 如果我的router.ex中有一个帖子资源,可以提供所有标准操作: resources "/posts", PostController 如何最好地组织某些路由以要求用户登录?例如,查看所有帖子或查看单个帖子不需要登录。但是,创建、编辑、更新、删除帖子需要用户登录 有没有一种方

Elixir 如何使用Scientive从一个场景向另一个场景发送消息?

我有一个名为ComponentX的组件,它有一个函数 def handle\u info(:do\u x,state)do 我试着从我的主要场景中这样称呼它: send(Application.ComponentX,:do\u x) 我也试过了 Process.send(Application.ComponentX,:[]) 但在尝试这两个函数时,我最终都出现了**(ArgumentError)argument error。免责声明:我从未使用过Scient,我不确定这是正确的惯用方法 **(

Elixir、Phoenix和Ecto:当数据库关闭时,为缓存数据提供服务的请求变得非常慢(从100ms到3秒)

我创建了一个没有html和mysql数据库的phoenix项目 我们在工作中使用的版本是: Erlang/OTP 21 [erts-10.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe] Elixir 1.8.0 (compiled with Erlang/OTP 20) 我正在做一个项目,它充当状态页面工具(hund.io)和我们自己的API和报告工具之间的代理,因此我需要一个数据库来存储服务名称

Elixir EXTO:Repo.preload不工作,协议EXTO.Queryable未实现

我已经安装了全新的Phoenix 1.3,并在其中生成了带有两个模式帖子和评论的博客上下文。我的测试项目叫做NewVersion(因为我正在测试Phoenix框架的新版本) 因此,我的模式非常标准,主要由phx.gen.html生成: 邮政编码 defmodule NewVersion.Blog.Post do use Ecto.Schema import Ecto.Changeset alias NewVersion.Blog.Post schema "blog_posts

Elixir 函数中的映射参数

我正在学习长生不老药,还有一件事我不明白,在函数中,映射是参数的形式。您看到的最常见的地方是在控制器中,如下所示: 控制器 因此,create/2函数。第二个参数类似于%{“league”=>league_params}。如果我错了,请纠正我,但这是一个映射,那么为什么我们要引用下面的值League.changeset(League\u params),而不是键League.changeset(“League”) 这似乎是一个愚蠢的问题,但我想不出这个问题,也找不到这个问题的文档。感谢您的帮助。

Elixir 项目2路径未被识别为可单击路径

当我命令单击iTerm2中的一个路径时,单击会打开带有相应文件的Atom:) 但是我的应用程序记录器在iterm2控制台中显示了lib/app/helpers/date\u helper.ex:213这样的路径 这些路径未被识别为路径。因此,命令单击不起作用。 如何告诉iTerm2,作为lib/app/users/user.ex:100是一个路径和行号。您需要首先将Atom注册为OSX中.ex文件的默认应用程序(例如,通过双击Finder窗口中的.ex文件) 我对此进行了测试,在注册默认应用程序

上一页 1 2 ...  18   19   20   21    22   23   24  ... 下一页 最后一页 共 125 页