Эрланг конкатенация списка строк
У меня есть следующий список свойств
PropList = [{numbers, ["22", "10"]}, {etc, "22"}].
Я хочу выйти из списка ["22", "10"]
как это:
proplists:get_value(numbers, PropList).
Проблема в том, что я получаю две строки внутри списка сцепленными, т.е. "2210"
, Я пытался с помощью propertylists:lookup/2
чтобы получить кортеж целых чисел и соответствие шаблону, чтобы извлечь список. Но я все равно получаю "2210"
,
Я предполагаю, что это из-за того, как erlang хранит строки в памяти.. Кто-то может мне здесь помочь?
Позже редактирование: мне удалось извлечь и использовать данные, если я делаю карту поверх списка строк... Может быть, это просто проблема печати?
Позже-позже Редактировать Я не знаю, что случилось, может быть, я слишком устал:) извините, ребята. Удалим этот вопрос завтра
2 ответа
1> PropList = [{numbers, ["22", "10"]}, {etc, "22"}].
[{numbers,["22","10"]},{etc,"22"}]
2> proplists:get_value(numbers, PropList).
["22","10"]
3>
Это мой вывод с вашим заданным фрагментом.
Да, код правильный. Если вы используете io:format
, он объединит все, что может на выходе.
В Эрланге есть мета-тип 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