Size: a a a

2019 October 27

TH

Taras Halturin in ErlangRus
Саша
<<Mark:32/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
<<Mark:32/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
** exception error: no match of right hand side value <<77,84,104,100,0,0,0,6,0,1,0,2,0,240,77,84,114,107,
                                                       0,0,0,28,0,255,88,4,4,2,24,...>>
так не получается
Не забывай размер юнита указывать Mark:4/binary-unit:8
источник

С

Саша in ErlangRus
Taras Halturin
Не забывай размер юнита указывать Mark:4/binary-unit:8
а чем оно отличается от описания семента которое Максим предложил?
источник

С

Саша in ErlangRus
или /binary не гарантирует что там 8 бит?
источник

TH

Taras Halturin in ErlangRus
Просто ты сначала 32 указал, потом 4
источник

VS

Vladimir Sekisov in ErlangRus
по-умолчанию unit для binary байт, те 4*8 в итоге
источник

TH

Taras Halturin in ErlangRus
Так читабельнее получается.
источник

С

Саша in ErlangRus
Taras Halturin
Просто ты сначала 32 указал, потом 4
я оба варианта пробовал и вылетала «exception error: no match of right hand side value»
источник

TH

Taras Halturin in ErlangRus
Скорее всего какая-то переменная уже была со значением
источник

TH

Taras Halturin in ErlangRus
Если в шеле экспериментируешь, то не забывай f() вызывать
источник

С

Саша in ErlangRus
Taras Halturin
Скорее всего какая-то переменная уже была со значением
ах вот оно что
<<Mark:4/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.


т.е. если у меня выше где-нибудь установлена переменна Mark например, то при разборе будет сопоставление с уже существующем значением?
источник

TH

Taras Halturin in ErlangRus
Да
источник

TH

Taras Halturin in ErlangRus
Иммутабельность
источник

TH

Taras Halturin in ErlangRus
Если переменная уже имеет значение, то она должна иметь ровно то же, что получает при матчинге, иначе - исключение
источник

С

Саша in ErlangRus
круто, спасибо
источник

В

Вертолетчик in ErlangRus
Mark:32/bits тоже работает, то есть просто Mark:32 не прокатит, если нужны именно символы
источник

С

Саша in ErlangRus
еще вопросик, а если мне надо сделать сопоставлени с hex кодом?

<<0, 16#f0, 16#aa>>


такое возможно?
источник

c🦊

cleverfox 🦊 in ErlangRus
Взять отдельные биты? Или просто сматчить?
источник

С

Саша in ErlangRus
просто сматчить
источник

С

Саша in ErlangRus
метка начала определенного события
источник

c🦊

cleverfox 🦊 in ErlangRus
А... От этого места бинарь взять?
источник