Совпадение последнего байта двоичного кода в гвардии - PullRequest
1 голос
/ 12 октября 2011

Возможно ли сопоставить последний байт в двоичном коде, используя сопоставление с образцом.Что-то вроде:

<<Rest/binary, 45>> = BinaryToMatch 

Ответы [ 3 ]

4 голосов
/ 12 октября 2011

Короче, нет (по крайней мере, не в R14B01). Вы также должны знать размер двоичного файла.

Skip = byte_size(BinaryToMatch) - 1,
<<_:Skip/binary, 45>> = BinaryToMatch.
2 голосов
/ 14 октября 2011

Кроме того, вы также можете сделать 45 = binary:last(Bin).К сожалению, эта функция не охраняет BIF.

1 голос
/ 02 августа 2016

В erlang 19 (может быть, предыдущие версии также поддерживают это, я их не проверяю) вы можете использовать эту защиту:

when binary_part(Key, {byte_size(Key), -1}) =:= BinMatchElement
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...