标签: elixir

Elixir睡眠/等待1秒

如何睡觉/等待一秒钟?

我能找到的最好的东西是这样的(在iex中):

IO.puts "foo" ; :timer.sleep(1); IO.puts "bar"
Run Code Online (Sandbox Code Playgroud)

但是我的两个看法都没有延迟.

elixir iex

54
推荐指数
2
解决办法
3万
查看次数

如何重新编译Elixir项目并从iex中重新加载?

我目前正在学习Elixir,通过在elixir-lang网站上浏览OTP和混合教程,我很难找到如何从shell中重新编译和重新加载项目.

在Erlang中我会这样做make:all([load]),它会编译并加载发生的任何更改.然而,iex总是说:up_to_date,这确实有意义,因为Elixir使用mix来满足它的编译需求.

我在iex中找不到任何等价物.

elixir-mix elixir

53
推荐指数
3
解决办法
2万
查看次数

如何通过本地网络连接两个Elixir节点?

如何通过网络连接连接两台不同机器的两个Erlang/Elixir节点?

elixir

51
推荐指数
2
解决办法
5475
查看次数

在测试时撬

我是Elixir的新手,但它有很多乐趣!

我来自Ruby世界,所以开始看起来比喻.并且存在调试工具pry.使用binding.pry我可以中断任何会话.我在Elixir找到了类似的东西 - IEx.pry.但是当我通过测试时,它不起作用ExUnit.

问题 - 是否可以中断测试会话并使用当前环境运行iex?

testing elixir iex

51
推荐指数
2
解决办法
5332
查看次数

列表与元组 - 使用什么以及何时使用?

我试图把握之间的差异列表元组Elixir.从Elixir指南的基本类型部分,我理解:

  • 列表存储为链接项
  • 更新列表很快(仅在预先添加时)
  • 获取列表项很慢
  • 获取列表信息(大小/长度)很慢
  • 元组元素存储在一起
  • 获取元组信息很快
  • 获取元组元素很快
  • 修改元组很昂贵

好的,这一切都很好,但我仍然不确定什么时候使用.我看到大多数方法返回一个元组但是其他地方都使用了Lists,并且许多方法接受Lists作为输入,而不是元组.根据上面提到的要点,不应该使用元组来传递数据,因为从用户给定值的元组中读取会很快吗?

我也注意到元组不是可枚举的,那是什么呢?不会使用Enum它们比在列表中使用它更快吗?

如果有人可以帮助我更好地理解它们,可能通过举几个例子说明什么时候使用,那就太棒了.

elixir

50
推荐指数
3
解决办法
5642
查看次数

在Elixir中,如何将范围转换为列表?

我可以声明一个范围如下:

range = 1..10
Run Code Online (Sandbox Code Playgroud)

有没有办法将范围转换为列表?

elixir

47
推荐指数
4
解决办法
1万
查看次数

Elixir's Phoenix的Catch-all/wildcard路线?

在Phoenix路由器中是否有可以充当通配符的路由?

elixir phoenix-framework

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

如何在Elixir中使用"with"关键字,它的用途是什么?

在elixir 1.2中,他们已经包含了关键字"with",但它并不完全清楚它是什么.

我将如何以及在何种情况下使用它?

elixir

47
推荐指数
2
解决办法
8165
查看次数

Elixir列表被解释为char列表

我刚刚开始使用Elixir.我正在使用ExUnit编写一些测试,用于我自己实现的简单的Enumerable函数,而不使用标准的Enum模块.

在我的测试中,我发现每当我引用列表时[7, 8, 9],一旦它在stdout中打印,我就会看到char列表'\a\b\t'.为什么会发生这种事情?

list elixir

45
推荐指数
2
解决办法
8293
查看次数

模式匹配功能对空地图

我正在玩模式匹配,我发现,将方法的匹配参数与空映射进行模式化并不容易.我认为它会是这样的:

defmodule PatternMatch do
  def modify(%{}) do
    %{}
  end

  def modify(map) do
    # expensive operation
    %{ modified: "map" }
  end
end
Run Code Online (Sandbox Code Playgroud)

但似乎第一个函数子句匹配任意映射:

iex> PatternMatch.modify(%{a: "map"})
==> %{}
Run Code Online (Sandbox Code Playgroud)

还有另一种检查空地图的方法吗?

elixir pattern-matching

45
推荐指数
3
解决办法
1万
查看次数