小编Hen*_*_Cl的帖子

二进制类型上的模式匹配不能使用变量的值

例如:

arg = "echo:hello"
prefix = "echo"

case arg do
  <<^prefix, ":", msg::binary>> -> IO.puts("Echo message: #{msg}")
  _ -> IO.puts("No match")
end
Run Code Online (Sandbox Code Playgroud)

结果: No match

如果我想使用prefix模式匹配的值,该怎么办?

erlang elixir

5
推荐指数
1
解决办法
167
查看次数

关于在模块内部调用宏

defmodule DemoMacro do
  defmacro i_am_macro do
    quote do
      # ……
    end
  end

  i_am_macro # (CompileError) example.exs:10: undefined function i_am_macro/0
end
Run Code Online (Sandbox Code Playgroud)

但是从其他模块导入,可以成功调用:

defmodule SecondModule do
  require DemoMacro
  DemoMacro.i_am_macro
end
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能编译第一段代码?

elixir

2
推荐指数
1
解决办法
135
查看次数

函数名称与内核模块中的函数冲突.有没有办法先调用自己的函数?

例如,div/2Kernel模块中的现有功能.我想调用自己的div/2函数而不是Kernel.div/2函数.

erlang elixir

1
推荐指数
1
解决办法
105
查看次数

不同的Erlang进程可以有独立的工作目录吗?

任何流程修改cwd都是全局的:

iex(1)> File.cwd
{:ok, "/home/hentioe"}
iex(2)> spawn fn -> File.cd("/home")  end
#PID<0.105.0>
iex(3)> File.cwd                         
{:ok, "/home"}
Run Code Online (Sandbox Code Playgroud)

有没有办法隔离cwd进程之间的当前工作目录()?

erlang working-directory elixir

1
推荐指数
1
解决办法
64
查看次数

我不能使用mmap在进程之间共享哈希

我正在实现一个多进程库,该库为共享内存提供数据结构。但是我现在遇到麻烦,我在子进程中修改了共享的Hash对象,但父进程仍未读取更改后的值。

示例代码:https : //play.crystal-lang.org/#/r/6n34

用相同的指针修改,为什么无效?

mmap crystal-lang

0
推荐指数
1
解决办法
97
查看次数

标签 统计

elixir ×4

erlang ×3

crystal-lang ×1

mmap ×1

working-directory ×1