【问题标题】:erlang string list concatenation [closed]erlang字符串列表连接[关闭]
【发布时间】:2012-03-05 00:36:54
【问题描述】:

我有以下属性列表

PropList = [{numbers, ["22", "10"]}, {etc, "22"}].

我希望像这样退出列表["22", "10"]

proplists:get_value(numbers, PropList).

问题是我将列表中的两个字符串连接起来,即"2210"。我尝试使用propertylists:lookup/2 获取整数元组和模式匹配以提取列表。但我最终还是得到了"2210"

我猜这是因为 erlang 在内存中存储字符串的方式。有人可以帮我吗?

稍后编辑:如果我对字符串列表进行映射,我已经设法提取和使用数据......也许这只是一个打印问题?

稍后编辑我不知道发生了什么,也许我太累了 :) 对不起各位。明天删除这个问题

【问题讨论】:

  • 我复制并粘贴,它工作正常(我得到了数组)。

标签: list functional-programming erlang property-list


【解决方案1】:
1> PropList = [{numbers, ["22", "10"]}, {etc, "22"}].       
[{numbers,["22","10"]},{etc,"22"}]

2> proplists:get_value(numbers, PropList).
["22","10"]

3> 

这是我给定 sn-p 的输出。

【讨论】:

    【解决方案2】:

    是的,代码是正确的。如果您使用io:format,它将在输出时连接所有可能的内容。

    Erlang 中有一个元类型称为iolist,如“可用于输入/输出”。它可以是字符列表(整数)、其他 iolists 或二进制文件。听起来很混乱,但很方便。

    如果您想打印漂亮,请使用~p 格式。

    换句话说:

    2> io:format([[65, $B, 67], <<"DEF">>, [[71, 72], 73], "JKL", 10]).
    ABCDEFGHIJKL
    ok
    3> io:format("~p", [[[65, $B, 67], <<"DEF">>, [[71, 72], 73], "JKL", 10]]).
    ["ABC",<<"DEF">>,["GH",73],"JKL",10]ok
    

    【讨论】:

      猜你喜欢
      • 2021-11-06
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 2020-12-18
      • 2011-02-24
      • 2017-04-24
      • 2010-09-29
      • 2014-11-27
      相关资源
      最近更新 更多