我有一个简单的地图,我想过滤具有相似值的地图
输入
%{a: 1, b: 1, c: 2}
Run Code Online (Sandbox Code Playgroud)
搜索值为1
输出
%{a: 1, b: 1}
Run Code Online (Sandbox Code Playgroud) 为什么第一行存在,它没有函数体并且条件总是匹配?我找不到相关的 Elixir 参考文档。
def infinity_binary(type)
def infinity_binary({:bf, 16}), do: <<0x7F80::16-native>>
def infinity_binary({:f, 16}), do: <<0x7C00::16-native>>
def infinity_binary({:f, 32}), do: <<0x7F800000::32-native>>
def infinity_binary({:f, 64}), do: <<0x7FF0000000000000::64-native>>
Run Code Online (Sandbox Code Playgroud) 考虑一下Application.fetch_env!/2。\n!函数名以 结尾的特殊含义是什么?
defp db_host do\n Application.fetch_env!(:my_app, :db_host)\nend\nRun Code Online (Sandbox Code Playgroud)\n 我的目的是将列表转换[1,2,3,4]为[1,3,6,10](累积列表),并在模块中找到相关函数Enum。
我的代码如下,请问如何改进?
def create_accum_list(list) when is_list(list) do
{_, list_a} =
List.foldl(list, {0, []}, fn x, {sum, acc} ->
a = x + sum
{a, [a | acc]}
end)
Enum.reverse(list_a)
end
Run Code Online (Sandbox Code Playgroud) 我正在为我的 Elixir 应用程序准备一个 Docker 镜像。我用于esbuild资产编译。
esbuild使用作为npm包安装。
Dockerfile:
# copy umbrella app
COPY ./apps/gpanel ./apps/gpanel
...
# compile assets
RUN mix assets.deploy
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
# copy umbrella app
COPY ./apps/gpanel ./apps/gpanel
...
# compile assets
RUN mix assets.deploy
Run Code Online (Sandbox Code Playgroud) 我是Elixir的新手,之前我从未遇到过这个问题.我很好奇处理这类问题的最佳或可接受的方式是什么?
我spawn是一个从websocket接收数据的进程,然后将send这些数据传回给父进程.父运行一个递归process()函数,该函数receive来自生成的进程.
该process函数与数据匹配,并且在大多数情况下运行回调函数.由于它处理数据,因此该回调函数可能位于较重的一侧.
通过删除大量Logger.info语句,我能够发现生成的进程从websocket接收数据并将send此数据传递给父进程,但父进程实际上并没有处理邮箱.
我使用该alive?/1函数确定父进程是活动的,后来我使用该函数检查了邮箱的状态Process.info/1- 它显示邮箱消息的数量正在增长(数百条消息).
我的工作解决方案是,而不是在process函数中调用回调spawn,我相信它允许父进程更快地处理其邮箱.
处理这种情况的其他更好的方法是什么?
def run(url, callback) do
{domain, path} = parse_url(url)
socket = Socket.Web.connect!(domain, path: path, secure: true)
spawn_link(Project.WebsocketClient, :listen, [url, socket, self])
process(callback)
end
def process(callback) do
receive do
{:ok, data} ->
callback.(data)
# spawn(fn -> callback.(data) end) - my fix.
{:ping} ->
Logger.info("Pong")
{:error, _, url} ->
run(url, callback) …Run Code Online (Sandbox Code Playgroud) 我想Ecto使用自定义SQL代码生成新的迁移,而不是使用提供的帮助程序.当前的mix生成器任务仅处理模型.
如何在迁移中编写原始SQL代码?
来自googlemap API的我的JSON_Respon给出了
%{ body: body} = HTTPoison.get! url
body = {
"geocoded_waypoints" : [{ ... },{ ... }],
"routes" : [{
"bounds" : { ...},
"copyrights" : "Map data ©2018 Google",
"legs" : [
{
"distance" : {
"text" : "189 km",
"value" : 188507
},
"duration" : {
"text" : "2 hours 14 mins",
"value" : 8044
},
"end_address" : "Juhan Liivi 2, 50409 Tartu, Estonia",
"end_location" : {
"lat" : 58.3785389,
"lng" : 26.7146963
},
"start_address" : "J. …Run Code Online (Sandbox Code Playgroud) 我的Elixir代码中有一个特定的日志语句,应该经常调用它,但是我不想每次都打印该日志语句。可能是我想每5次打印一次。
如果有办法请帮助。它以太快的速度淹没了我的日志文件!提前致谢
如何用Elixir编写此Ruby代码?
value = 0
value += 3 if cond1
value += 2 if cond2
value += 8 if cond3
value -= 3 if cond4
Run Code Online (Sandbox Code Playgroud)