elixir相关内容

正常关闭GenServer

我用GenServer编写了一个Elixir应用程序,它在引导时启动外部应用程序,并在退出时将其关闭并执行其他清理。我已在init/1回调中添加了启动功能,并在terminate/2回调中添加了清理代码。 启动GenServer时init代码运行正常,手动发送:stop信号时也会调用terminate方法,但在IEX中出现意外关机和中断(如按Ctrl+C)时,不会调用终止代码。 目前, ..
发布时间:2022-02-25 22:52:10 其他开发

枚举长生不老药中的字符串

在Elixir中,如果我有一个字符串,如"José1 José2",我如何枚举它?如果尝试使用Enum或for理解,则会出现以下错误: **(Protocol.UnfinedError)可枚举的协议未为位串类型的";josé1 josé2";实现 推荐答案 Elixir中的字符串是UTF-8编码的二进制文件。如果要枚举只是字节集合的二进制文件,则需要指定如何枚 ..
发布时间:2022-02-25 22:49:04 其他开发

Elixir 的好 IDE

我正在寻找一个至少可以执行以下某些操作的 IDE 输入变量名时的代码补全和可能按下 后的功能. 显示函数签名和文档 导航到函数/变量/模块的定义 如果也可以的话就好了 警告错误 代码生成 脚手架基础项目 解决方案 有很棒的 Elixir 扩展支持Visual Studio Code,目前有 2 个扩展可以将语言添加到工具中,我的偏好是 vscode-elixir. ..
发布时间:2022-01-20 21:29:24 其他开发

Elixir Hound 等待页面加载

我正在提交一个登录表单,然后尝试使用 elixir/hound 捕获 HTML.提交后,我运行 page_source 并一无所获.如果我等待一秒钟(页面完成加载),然后我会取回 html. 有没有办法让 hound 等到页面加载完成? 我目前正在做::timer.sleep(2000) 作为解决方法,希望有更好的方法:/ 解决方案 我就是这样做的: 创建一个函数,每 1 ..
发布时间:2022-01-15 16:37:29 其他开发

如何在长生不老药中获得上个月

如何在不使用 elixir 中的包或库的情况下获取上个月的数据? 例如,如果当前日期是2018-01-25,我会得到2017-12-25.或者如果当前日期是2018-03-31,我会得到2018-02-28(2018年不是闰年) 解决方案 @Sheharyar 的答案就差不多了,唯一的区别是你需要减去两个月的最大天数:p> defmodule Dating dodef previo ..
发布时间:2022-01-11 14:31:12 其他开发

什么是“销"?运算符 for 和 Elixir 变量是否可变?

目前正在尝试理解 Elixir 中的“^"运算符.来自网站: 没有兴趣重新绑定时可以使用pin操作符^一个变量,而是匹配它之前的值匹配: 来源 - http://elixir-lang.org/getting_started/4.html 考虑到这一点,您可以像这样为符号附加一个新值: iex>x = 1 # 输出“1"即>x = 2 # 输出“2" 我也可以: iex>x ..

你如何在 Elixir 或 Erlang 中在运行时动态创建和加载模块?

基本场景是这样的:我需要从数据库加载文本,然后将该文本转换为 Elixir 模块(或 Erlang 模块),然后调用它.文本实际上与模块文件相同.所以这是一种代码热加载的形式.我想编译“文件",然后加载生成的模块,然后调用它.稍后我会卸载它.唯一的区别是代码存在于数据库中而不是磁盘上的文件中.(并且在我编写将加载它的代码时它不存在.) 我知道 Erlang 支持热代码加载,但似乎专注于在磁盘 ..
发布时间:2021-12-29 14:23:58 其他开发

在 Elixir 中按值过滤 Map 的有效方法

在 Elixir 中,通过值过滤 Map 的有效方法是什么. 现在我有以下解决方案 %{foo: "bar", biz: nil, baz: 4}|>Enum.reject(fn {_, v} -> is_nil(v) end)|>新地图 这个解决方案对我来说似乎效率很低.当在 Map 上调用时,Enum.reject/2 返回一个 Keywords.因为我想要一个 Map,所以我需要调 ..
发布时间:2021-12-23 15:49:55 其他开发

当我在 session 中测试需要 user_id 的 phoenix action 时,如何在 setup 中设置 session?

我有一个测试,需要在测试前将 user_id 设置为 session,因为此操作需要知道 current_user. setup do%用户{编号:123456,用户名:“lcp",电子邮件:“abc@gmail.com",密码: Comeonin.Bcrypt.hashpwsalt(“密码")} |>回购.insert{:好的,用户:Repo.get(用户,123456)}结尾测试“POST/ ..
发布时间:2021-12-15 12:09:23 其他开发

Elixir 列表被解释为字符列表

我刚刚开始使用 Elixir.我正在使用 ExUnit 为我自己实现的简单 Enumerable 函数编写一些测试,而不使用标准的 Enum 模块. 在我的测试中,我发现每当我引用列表 [7, 8, 9] 时,一旦它在标准输出中打印,我就会看到字符列表 '\a\b\t'.为什么会发生这种事情? 解决方案 Elixir 有两种字符串:二进制(双引号)和字符列表(单引号).后一种变体继承 ..
发布时间:2021-12-06 13:26:57 其他开发

Elixir/erlang 在哪里适合微服务方法?

最近我一直在用 docker compose 做一些实验,以便部署多个协作的微服务.我可以看到微服务提供的许多好处,现在有一个很好的工具集来管理它们,我认为跳入微服务旅行车并不是非常困难. 但是,我也一直在试验 Elixir,我非常喜欢它本身提供的好处.鉴于它鼓励将您的代码打包到多个解耦的应用程序中,并支持热代码升级,您将如何将 docker 与 elixir(或 erlang,就此而言)混 ..
发布时间:2021-11-17 02:14:39 其他开发