为什么引用的2元组具有与其他n元组不同的表示形式?

时间:2017-05-17 19:12:04

标签: elixir

Quote and unquote guide州:

  

除了上面定义的元组外,还有五个Elixir文字,   引用时,返回自己(而不是元组)。他们是:

:sum         #=> Atoms
1.0          #=> Numbers
[1, 2]       #=> Lists
"strings"    #=> Strings
{key, value} #=> Tuples with two elements

玩iex证实了这一点:

iex(1)> quote do: {}
{:{}, [], []}
iex(2)> quote do: {1}
{:{}, [], [1]}
iex(3)> quote do: {1,2}
{1, 2}
iex(4)> quote do: {1,2,3}
{:{}, [], [1, 2, 3]}

为什么只有2元组由自己代表,而不是其他n元组?

1 个答案:

答案 0 :(得分:1)

Syntax Reference

中对此进行了解释
  

请记住,因为列表和双元素元组是带引号的文字,按照定义,关键字也是文字(实际上,带有两个元素的元组是引用文字的唯一原因是支持关键字作为文字 )。

我相信这样做的一个好处是宏可以轻松地从关键字列表中提取值。