【发布时间】:2018-01-25 05:51:51
【问题描述】:
在 Elixir 中的字符串映射上映射 Integer.parse 时,我遇到了一些非常奇怪的行为。我执行了以下操作:
Enum.map(["7", "8", "9"], &elem(Integer.parse(&1), 0))
这导致以下输出:'\a\b\t'。
奇怪的是,如果我更改“7”,它的行为就像我预期的那样:
`Enum.map(["4", "8", "9"], &elem(Integer.parse(&1), 0))`
[4, 8, 9] 中的结果
进一步的实验表明,大于 6 但小于 14 的每个前导数都有类似的行为
例如,Enum.map(["11", "8", "10"], &elem(Integer.parse(&1), 0)) 的结果是 '\v\b\n',但 Enum.map(["16", "8", "10"], &elem(Integer.parse(&1), 0)) 的结果是 [16, 8, 10]
对此有何解释?
【问题讨论】:
标签: elixir