elixir相关内容
我用GenServer编写了一个Elixir应用程序,它在引导时启动外部应用程序,并在退出时将其关闭并执行其他清理。我已在init/1回调中添加了启动功能,并在terminate/2回调中添加了清理代码。 启动GenServer时init代码运行正常,手动发送:stop信号时也会调用terminate方法,但在IEX中出现意外关机和中断(如按Ctrl+C)时,不会调用终止代码。 目前,
..
将包含两个项目元组的列表(如[{1,2},{3,4}])转换为映射%{1=>2, 3=>4}的优雅方式是什么? 关键字列表很简单,但是如果我们有任意键怎么办? 推荐答案 执行此操作的最简单方法是: Enum.into(list, %{})
..
在Elixir中,如果我有一个字符串,如"José1 José2",我如何枚举它?如果尝试使用Enum或for理解,则会出现以下错误: **(Protocol.UnfinedError)可枚举的协议未为位串类型的";josé1 josé2";实现 推荐答案 Elixir中的字符串是UTF-8编码的二进制文件。如果要枚举只是字节集合的二进制文件,则需要指定如何枚
..
我有这个运行测试的GitHub操作工作流,但现在我在其中集成了松弛通知。我要获取Run tests步骤的输出,并在松弛步骤中将其作为消息发送。 - name: Run tests run: | mix compile --warnings-as-errors mix format --check-formatted mix ecto.creat
..
我正在寻找一个至少可以执行以下某些操作的 IDE 输入变量名时的代码补全和可能按下 后的功能. 显示函数签名和文档 导航到函数/变量/模块的定义 如果也可以的话就好了 警告错误 代码生成 脚手架基础项目 解决方案 有很棒的 Elixir 扩展支持Visual Studio Code,目前有 2 个扩展可以将语言添加到工具中,我的偏好是 vscode-elixir.
..
iex>MapSet.new(1..32) |>枚举.to_list[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,23、24、25、26、27、28、29、30、31、32]iex>MapSet.new(1..33) |>枚举.to_list[11、26、15、20、17、25、13、8
..
我尝试进行以下迁移: defmodule Shopper.Repo.Migrations.MakeNameUniqueShopper 做使用 Ecto.Migrationdef改变做创建 unique_index :shoppers, [:name]结尾结尾 也试过 create unique_index :shoppers, [:name], name: :name_unique, crea
..
我正在提交一个登录表单,然后尝试使用 elixir/hound 捕获 HTML.提交后,我运行 page_source 并一无所获.如果我等待一秒钟(页面完成加载),然后我会取回 html. 有没有办法让 hound 等到页面加载完成? 我目前正在做::timer.sleep(2000) 作为解决方法,希望有更好的方法:/ 解决方案 我就是这样做的: 创建一个函数,每 1
..
如何在不使用 elixir 中的包或库的情况下获取上个月的数据? 例如,如果当前日期是2018-01-25,我会得到2017-12-25.或者如果当前日期是2018-03-31,我会得到2018-02-28(2018年不是闰年) 解决方案 @Sheharyar 的答案就差不多了,唯一的区别是你需要减去两个月的最大天数:p> defmodule Dating dodef previo
..
每当我 POST 到/api/subastas 时,我都会收到这个错误 Phoenix.ActionClauseError at POST/api/subastas/对 IascSubastas.SubastaController.create 的错误请求,没有匹配的操作子句来处理请求 如果我运行 mix phoenix.routes,我会看到 :create 正确路由到 POST/api/s
..
目前正在尝试理解 Elixir 中的“^"运算符.来自网站: 没有兴趣重新绑定时可以使用pin操作符^一个变量,而是匹配它之前的值匹配: 来源 - http://elixir-lang.org/getting_started/4.html 考虑到这一点,您可以像这样为符号附加一个新值: iex>x = 1 # 输出“1"即>x = 2 # 输出“2" 我也可以: iex>x
..
基本场景是这样的:我需要从数据库加载文本,然后将该文本转换为 Elixir 模块(或 Erlang 模块),然后调用它.文本实际上与模块文件相同.所以这是一种代码热加载的形式.我想编译“文件",然后加载生成的模块,然后调用它.稍后我会卸载它.唯一的区别是代码存在于数据库中而不是磁盘上的文件中.(并且在我编写将加载它的代码时它不存在.) 我知道 Erlang 支持热代码加载,但似乎专注于在磁盘
..
在 Elixir 中,通过值过滤 Map 的有效方法是什么. 现在我有以下解决方案 %{foo: "bar", biz: nil, baz: 4}|>Enum.reject(fn {_, v} -> is_nil(v) end)|>新地图 这个解决方案对我来说似乎效率很低.当在 Map 上调用时,Enum.reject/2 返回一个 Keywords.因为我想要一个 Map,所以我需要调
..
我有一个测试,需要在测试前将 user_id 设置为 session,因为此操作需要知道 current_user. setup do%用户{编号:123456,用户名:“lcp",电子邮件:“abc@gmail.com",密码: Comeonin.Bcrypt.hashpwsalt(“密码")} |>回购.insert{:好的,用户:Repo.get(用户,123456)}结尾测试“POST/
..
我刚刚开始使用 Elixir.我正在使用 ExUnit 为我自己实现的简单 Enumerable 函数编写一些测试,而不使用标准的 Enum 模块. 在我的测试中,我发现每当我引用列表 [7, 8, 9] 时,一旦它在标准输出中打印,我就会看到字符列表 '\a\b\t'.为什么会发生这种事情? 解决方案 Elixir 有两种字符串:二进制(双引号)和字符列表(单引号).后一种变体继承
..
最近我一直在用 docker compose 做一些实验,以便部署多个协作的微服务.我可以看到微服务提供的许多好处,现在有一个很好的工具集来管理它们,我认为跳入微服务旅行车并不是非常困难. 但是,我也一直在试验 Elixir,我非常喜欢它本身提供的好处.鉴于它鼓励将您的代码打包到多个解耦的应用程序中,并支持热代码升级,您将如何将 docker 与 elixir(或 erlang,就此而言)混
..
我第一次尝试阿波罗.我的后端服务器是 Phoenix 框架(长生不老药).并在 http://localhost:4000/api 中运行所以我尝试在我的代码中使用 apollo 进行第一个查询. 从'react'导入React;import { StyleSheet, Text, View } from 'react-native';从“apollo-boost"导入 ApolloClient
..
我正在使用 HTTPoison 向 Paypal api 发送请求.这是使用其 api 登录的 paypal 文档:https://developer.paypal.com/docs/log-in-with-paypal/integrate/ 当我获取代码并尝试将其交换为访问令牌时,出现此错误:"{\"error\":\"invalid_client\",\"error_descriptio
..
我正在使用 HTTPoison 向 Paypal api 发送请求.这是使用其 api 登录的 paypal 文档:https://developer.paypal.com/docs/log-in-with-paypal/integrate/ 当我获取代码并尝试将其交换为访问令牌时,出现此错误:"{\"error\":\"invalid_client\",\"error_descriptio
..
我正在使用 HTTPoison 向 Paypal api 发送请求.这是使用其 api 登录的 paypal 文档:https://developer.paypal.com/docs/log-in-with-paypal/integrate/ 当我获取代码并尝试将其交换为访问令牌时,出现此错误:"{\"error\":\"invalid_client\",\"error_descriptio
..