出于某种原因,这段代码
for i <- 7..0, into: <<>>, do: if i in [0, 1], do: <<1::1>>, else: <<0::1>>在Elixir 1.6.0上失败,但在1.5.3上失败
1.6.0
iex(1)> for i <- 7..0, into: <<>>, do: if i in [0, 1], do: <<1::1>>, else: <<0::1>>
** (ArgumentError) argument error
:erlang.iolist_to_binary([[[[[[[["" | <<0::size(1)>>] | <<0::size(1)>>] | <<0::size(1)>>] | <<0::size(1)>>] | <<0::size(1)>>] | <<0::size(1)>>] | <<1::size(1)>>] | <<1::size(1)>>])1.5.3
iex(1)> for i <- 7..0, into: <<>>, do: if i in [0, 1], do: <<1::1>>, else: <<0::1>>
<<3>>我已经查看了变更量,但没有看到与此相关的任何更改。我环顾了一下代码库,但并没有发现有什么特别的地方。
(最新情况)
创建了一个问题https://github.com/elixir-lang/elixir/issues/7234。我会密切注意这两件事。
发布于 2018-01-19 23:26:21
这在灵丹妙药的1.6.1版本中得到了修正。
https://stackoverflow.com/questions/48350153
复制相似问题