如果我有这样的清单:
a = [1,2,3]
第二个列表如下:
b = [4,5,6]
我想要像这样添加这些列表:
[1,2,3, some_atom:[4,5,6]]
所以我想在列表中添加atom
。
我正在尝试这个:
a ++ [some_atom: b]
它给我输出:
[1, 2, 3 {:some_atom, [4, 5, 6]}]
任何人都可以建议如果可能的话我该怎么做?
由于
答案 0 :(得分:1)
你得到的是正确的结果。在Elixir中,Keyword列表只是一个元组列表。所以,
[key: :value, other_key: :other_value]
与
相同[{:key, :value}, {:other_key, :other_value}]
事实上,第一种只是第二种语法糖。
答案 1 :(得分:1)
只要您注意到$(".saninput").each(function(){
if ($(this).val() != ""){
var animal = $(this).data("animal");
alert (animal)
};
});
等同于[1,2,3, some_atom: [4,5,6]]
,您就应该能够自己找出答案。而你原来的方法是正确的。
[1,2,3, {:some_atom, [4,5,6]}]
答案 2 :(得分:1)
它们是相同的,并以相同的方式工作。这是Keyword列出工作的方式。
在iex
:
iex(1)> [foo: "bar"]
[foo: "bar"]
iex(2)> [{:foo, "bar"}]
[foo: "bar"]
冷静吧?,检查一下。
iex> [foo: "bar", baz: "bar"] == [{:foo, "bar"}, {:baz, "bar"}]
true
你的例子:
iex> [1, 2, 3, some_atom: [4, 5, 6]] == [1, 2, 3, {:some_atom, [4, 5, 6]}]
true