我想通过我的Elixir代码执行一个程序.将shell命令调用给定字符串的方法是什么?有什么不是特定于平台的吗?
就像我们可以在Ruby中获取任何对象(或类)来列出其方法一样,Elixir中是否有任何函数列出属于模块的所有函数?有东西(至少是远程的)String.functions(String可以用任何其他模块名称替换)?
我正在阅读SašaJurić的"Elixir in Action"一书,在第一章中它说:
Erlang进程完全相互隔离.它们不共享内存,一个进程崩溃不会导致其他进程崩溃.
Java线程也不是这样吗?我的意思是当Java线程崩溃时,它也不会崩溃其他线程 - 特别是,如果我们正在查看请求处理线程(让我们main从这个讨论中排除线程)
我正在阅读编程凤凰书,我想知道def和之间的区别是什么defp.
我的控制器中有几个功能 - 大多数都是这样的动作:
def new (conn, _params) do
...
end
Run Code Online (Sandbox Code Playgroud)
这本书让我在这个控制器中创建另一个函数,这不是典型的控制器动作,如下所示:
defp user_videos(user) do
...
end
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何在Phoenix Framework中的控制器内定义函数defp时知道何时使用以及何时使用def.
将两个项目元组列表[{1,2},{3,4}]转换为地图的优雅方法是%{1=>2, 3=>4}什么?
关键字列表将是微不足道的,但如果我们有任意键怎么办?
我正在尝试在服务器运行时从我的Phoenix应用程序中的一个控制器上打印一些调试信息.
defmodule PhoenixApp.TopicController do
use PhoenixApp.Web, :controller
def index(conn, _params) do
log("this text")
# ...
end
end
Run Code Online (Sandbox Code Playgroud) 在python的nosetests中,您可以通过调用它的类然后调用测试名来指定运行一个测试,我们如何使用Elixir的ExUnit执行此操作?
我需要生成一个随机数.我发现了这个Enum.random/1函数,但是它需要一个可列举的数字,例如列表或数字范围.
这是获得随机数的唯一方法吗?
如何睡觉/等待一秒钟?
我能找到的最好的东西是这样的(在iex中):
IO.puts "foo" ; :timer.sleep(1); IO.puts "bar"
Run Code Online (Sandbox Code Playgroud)
但是我的两个看法都没有延迟.