Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 无法打印二进制变量_Elixir - Fatal编程技术网

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>
“福”