Erlang списки с одиночными числами свыше 8? - PullRequest
3 голосов
/ 10 сентября 2011

каким-то странным образом все числа свыше 8, одиночные, в списке становятся чем-то вроде ascii? [8] -> ["\ b"]

Пожалуйста, попробуйте помочь мне с этим:)

Ответы [ 3 ]

8 голосов
/ 10 сентября 2011

String - это не тип данных в Erlang, это просто список целых чисел. Но оболочка Erlang пытается отобразить списки в виде строк, если это возможно:

1> S = [65, 66, 67, 68, 69, 70].
"ABCDEF"
2> S = "ABCDEF".
"ABCDEF"
3> io:write(S).
[65,66,67,68,69,70]ok
4> [65, 66].
"AB"
5> [65, 66, 1].
[65,66,1]
1 голос
/ 28 сентября 2011

выведите его с помощью ~ w вместо ~ p, и ваша проблема должна исчезнуть.

~ p пытается интерпретировать элементы в списке как ascii. ~ w не

0 голосов
/ 27 сентября 2011

Из документации: http://www.erlang.org/doc/reference_manual/data_types.html

2.11 Строка

Строки заключены в двойные кавычки ("), но не являются типом данных в Erlang. Вместо этого строка" hello "является сокращением для списка [$ h, $ e, $ l, $ l, $ o], то есть [104,101,108,108,111].

Два соседних строковых литерала объединяются в один. Это делается во время компиляции и не приводит к накладным расходам во время выполнения. Пример:

"строка" "42"

эквивалентно

"string42"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...