<<и>> символы в Erlang

В прошлый раз, когда у меня возникла такая проблема, я на самом деле создал канал, запустил поток и использовал поток для записи данных в канал ... хотя вам придется просматривать вызовы операционной системы.

Возможно, есть и другие способы, такие как создание файла с отображением в памяти, но я искал что-то, что просто работало без большой работы и исследований.

РЕДАКТИРОВАТЬ: вы, конечно, можете изменить проблему на «как найти хорошее временное имя файла». Затем вы можете записать данные в файл и прочитать их обратно в: -)

13
задан marcc 1 August 2009 в 05:49
поделиться

3 ответа

Небольшое примечание: результаты не представляют собой понимания битовых строк на просмотр, это всего лишь битовых строк . Однако вы можете использовать интерпретацию битовой строки для создания последовательности битовых строк (которая описана выше с генераторами и этим), во многом как списки и понимания списков.

вы можете использовать erlang: binary_to_list / 1 и erlang: list_to_binary / 1 для преобразования двоичного кода в строки (списки).

Причина, по которой драйвер mysql возвращает битовые строки, , вероятно, , потому что ими гораздо быстрее манипулировать.

15
ответ дан 1 December 2019 в 22:24
поделиться

В вашем конкретном примере вы можете выполнить преобразование, сопоставив возвращенные значения столбца, а затем создав новую запись, подобную этой:

case mysql:get_result_rows(Data) of
  [] ->
    not_found;  
  [[Col1, Col2]] ->  
    #my_record{column1 = Col1, column2 = Col2}
end
6
ответ дан 1 December 2019 в 22:24
поделиться

Это интерпретации битовых строк.

Понимания битовых строк аналогичны представлениям списков. Они используются для эффективного и лаконичного создания битовых строк.

Понимание битовой строки записывается с использованием следующего синтаксиса:

<< BitString || Qualifier1,...,QualifierN >>

BitString - это выражение битовой строки, и каждый квалификатор является либо генератором, либо генератором битовой строки, либо фильтром.

• Генератор записывается как:

 Pattern <- ListExpr. 

ListExpr должен быть выражением, результатом которого является список терминов.

• Генератор битовой строки записывается как:

 BitstringPattern <= BitStringExpr. 

BitStringExpr должен быть выражением, которое оценивается как битовая строка.

• Фильтр - это выражение, которое принимает значение true или false. Переменные в шаблоне генератора затеняют переменные в предложении функции, окружающем интерпретации битовой строки.

Понимание битовой строки возвращает битовую строку, которая создается путем конкатенации результатов оценки BitString для каждой комбинации элементов генератора битовой строки, для которой истинны все фильтры.

Пример:

1> << << (X*2) >> || 
<<X>> <= << 1,2,3 >> >>.
<<2,4,6>>
1
ответ дан 1 December 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: