elixir相关内容

将地图转换为Elixir中的关键字列表

我有一个格式如下的地图: %{“ browser_name” => “ Chrome”,“平台” => “ linux”} ,我需要将其转换为关键字列表: [浏览器名称:“ Chrome”,平台:“ linux”] 实现此目标的最佳方法是什么? 解决方案 这行不通吗? def convert_to_klist(map)do En ..
发布时间:2020-10-28 22:26:07 其他开发

Elixir OTP Supervisor检测到崩溃的进程时记录错误

在针对Supervisor的十六进制文档中,有一行指出: 使用此模块实现的主管具有一组标准的接口功能,并包括跟踪和错误报告功能。 不幸的是,我不知道该怎么做。我想要的是当 Supervisor 检测到童工崩溃并正在重新启动时触发的某种挂钩/通知/事件。主要是,我只想记录一个工作者崩溃的事实,以便可以向用户显示此错误,而就我而言,这需要将错误消息写入数据库中的字段。 我想念什么? ..
发布时间:2020-10-28 22:26:04 其他开发

Elixir doctest对于返回随机值的函数失败

我在Elixir中有一个函数,该函数在列表中生成三个随机RGB元组。 defmodule Color do @doc“”“ 创建三种随机的r,g,b颜色作为三个元组的列表 ##示例 iex> colors = Color.pick_color() iex> ; colors [{207,127,117},{219,121,237},{109,101, ..
发布时间:2020-10-28 22:26:02 其他开发

将地图转换为结构

我正在尝试将地图转换为结构,如下所示: 我有地图: iex(6)>用户 %{“ basic_auth” => “ Basic Ym1hOmphYnJhMTc =”,“名字” => “ foo”, “ lastname” => “ boo”} 该值应应用于struct: iex(7)> a = struct(UserInfo,user) %SapOdataS ..
发布时间:2020-10-28 22:25:55 其他开发

以变​​量为键的地图上的模式匹配

如何在具有字符串键的地图上进行模式匹配? iex(1)> my_map =%{“ key1” => “ var1”} %{“ key1” => “ var1”} iex(2)> %{aa => bb} = my_map **(CompileError)iex:2:在地图关键字匹配内非法使用变量aa,地图只能通过使用^ aa (stdlib)列表在现有变量上进行匹配。erl:13 ..
发布时间:2020-10-28 22:25:49 其他开发

在Elixir中更新嵌套地图

我有一个两级嵌套的地图,如何在第二级更新每个值?现在我正在这样做: 项目= Enum.map(items,fn(a)-> a.items2 = Enum.map(a.items2,fn(a2)-> Map.put(x2,:some_key,123) end) a end) 错误: 无法在匹配中调用远程函数“ a.items2 / 0”。 ..
发布时间:2020-10-28 22:24:34 其他开发

ETS创建返回值

我正在使用Elixir 1.6.3。 我正在使用Elixir中的Erlang :ets 模块,而的返回值让我有些困惑: ets.new/2 函数。 根据文档示例,当调用:ets.new(:whatever,[])时,应该返回似乎是整数的值: iex> table =:ets.new(:buckets_registry,[:set,:protected]) 8207 ..
发布时间:2020-10-28 22:24:32 其他开发

在长生不老药中分组或计数重复的字母

我正在尝试计算Elixir中String上的重复字母。 我确实尝试了一些尝试,但直到现在都没有成功。 让我们以以下字符串为例:“ AAABBAAC” 所需的输出将是“ 3A2B2A1C”; 。 将此字符串转换为列表,我能够计算出每个字母,结果是“ 5A2B1C” ,但我必须计算以下内容 这是我正在执行的代码: string |> String.grapheme ..
发布时间:2020-10-28 22:23:24 其他开发

设置Elixir软件包的默认应用程序配置

我正在编写一个Elixir软件包,我想指定一个默认的应用程序配置(用户可以通过在其 config.exs 中指定自定义值来覆盖它)。我最初将它们放在项目的 config.exs 中,直到我意识到依赖该库的项目不会加载配置文件。 配置文件本身告诉您: 此配置在任何依赖项之前加载且受限制 这个项目。如果另一个项目依赖于此项目,则该 文件将不会加载,也不会影响父项目。因此,如果 要为 ..
发布时间:2020-10-28 22:22:18 其他开发

了解Elixir函数参数中的模式匹配

在“ Elixir in Action”一书中,其中一个示例具有使我对模式匹配的理解加深的功能: def add_entry( %TodoList {entries:条目,auto_id:auto_id} = todo_list, 条目 )做 条目=地图。 put(entry,:id,auto_id) new_entries = HashDict.put(entry,auto_id,en ..
发布时间:2020-10-28 22:22:16 其他开发

Elixir,使用另一个模块的功能

我对编程和灵丹妙药非常陌生。因此,我非常努力地学习。但是我遇到了麻烦。我在寻找如何在另一个模块中使用函数的方式。我正在构建将键值映射存储在内存中的Web服务器。为了使地图保持临时状态,Ive决定使用Agent。这是我的代码的一部分: defmodule存储执行 使用代理 def start_link做 Agent.start_link(fn->%{}结尾,名称::tmp_stora ..
发布时间:2020-10-28 22:22:09 其他开发

摆脱科学计数法

我需要进行一些计算,但是我遇到一个值非常低的问题,例如,我需要得到0.005的2.7%,最后得到1.3500000000000003e-4,这不是我想要的。在寻找时,我只需要知道如何获得这些值的准确百分比,我现在正在做的是 * 2.7 / 100 对于整数或大于0.05的浮点数非常有用。 例如,我需要的是2.7% 0.005需要显示为0.000135。 解决方案 首先 ..
发布时间:2020-10-28 22:22:04 其他开发

具有多个/动态配置文件的Elixir应用程序

我有一个elixir应用程序,一个应用程序服务器,将从启动参数中受益。此应用程序使用ecto存储库,因此我可以在其中存储应用程序服务器的配置,但是我仍然需要一个配置密钥才能从db中检索内容。 目前我一直在为服务器应用程序使用config.exs(整个应用程序是一个伞形项目),但是显然,这只能处理一个静态配置。 我的问题是: 我可以使用mix指定我要使用的配置文件吗?我知道Mix库中有 ..
发布时间:2020-10-28 22:21:59 其他开发

Elixir的“混合格式”配置选项

我试图找到一个列表,其中列出了用于混合格式的可配置选项,以将其放入格式化程序配置文件中,但是我一生都找不到它。它不在混合格式文档中,也不在我浏览过的其他任何地方。有人知道我在哪里可以找到此信息吗? 解决方案 事实证明,混合格式没有太多设置选项,您可以在 mix上看到文档页面正是您所获得的。似乎没有足够的设置可以使它变得更自以为是。 ..
发布时间:2020-10-28 22:21:57 其他开发

如何确定从elixir中导入了特定功能的模块

通过在某个中间模块上调用 use 来包含多个外部模块时,是否有一种简单的方法来确定给定方法实际在哪个模块中定义? 例如: defmodule ModuleB do def method_b做 结束 结束 defmodule ModuleA做 #隐式导入ModuleB 使用SomeModuleImportingModuleB def method_a #如何确定 ..
发布时间:2020-10-28 22:21:55 其他开发

get_in用于嵌套列表& lix剂中的结构

我有一个结构 s = [ a:%Bla { b:“ c” } ] 我想参加 c 的价值。我正在尝试 get_in(s,[:a,:b]) 但这并不是为了从结构中获取价值。有没有类似的方法可以让我从带有嵌套结构的列表中获取 c ? 解决方案 已记录, get_in 默认情况下不适用于结构: Access语法(foo [b ..
发布时间:2020-10-28 22:21:48 其他开发

查找Elixir / Erlang内存文件的长度?

在Elixir(或Erlang)中,如果我有一个内存中的文件,如何找到字节的长度? {:ok,fd} =:file.open(“”,[:ram,:read,:write]) :file.write(fd,“ hello”) 解决方案 不确定是否有更好的方法,但这就是我所做的: def get_length(fd)do {:ok,cur} =:file.posit ..
发布时间:2020-10-28 22:21:42 其他开发

递归在Elixir中如何工作

Elixir中的简单函数,从 到返回数字: defmodule MyList做 def span(_),做:提高“应该是2个参数” def span(from ,to)从>开始到,做:[到| span(to + 1,from)] def span(from,to)from from ..
发布时间:2020-10-28 22:20:32 其他开发