Elixir 无法打印二进制变量
我声明了一个简单的变量Elixir 无法打印二进制变量,elixir,Elixir,我声明了一个简单的变量 h = "a" 当我尝试时,我得到 > ** (ArgumentError) argument error > (stdlib) eval_bits.erl:101: :eval_bits.eval_exp_field1/6 > (stdlib) eval_bits.erl:92: :eval_bits.eval_field/3 > (stdlib) eval_bits.erl:68: :eval_bits.expr_gr
h = "a"
当我尝试
时,我得到
> ** (ArgumentError) argument error
> (stdlib) eval_bits.erl:101: :eval_bits.eval_exp_field1/6
> (stdlib) eval_bits.erl:92: :eval_bits.eval_field/3
> (stdlib) eval_bits.erl:68: :eval_bits.expr_grp/4
> (stdlib) erl_eval.erl:484: :erl_eval.expr/5
> (iex) lib/iex/evaluator.ex:257: IEx.Evaluator.handle_eval/5
> (iex) lib/iex/evaluator.ex:237: IEx.Evaluator.do_eval/3
如果
h
在这里保存值“a”
,我可以成功执行
为什么
会出错?您可以执行,但必须指定它是二进制:
h = "a"
<<h::binary>>
"a"
h=“a”
“a”
来自:
未指定类型时,默认值为整数:
iex>
Elixir默认情况下也接受段为文本字符串或字符串
文字字符表,默认情况下扩展为整数:
iex>
变量或任何其他类型需要显式标记:
iex>rest=“oo”
iex>
**(ArgumentError)参数错误
我们可以通过将其显式标记为二进制来解决此问题:
iex>rest=“oo”
iex>
“福”