Используя списочное понимание, эликсир позволяет выполнять сопоставление с шаблоном так:
iex()> for {a,2,c} = ch <- [{1,2,3},{4,5,6},3,4,5], do: c
[3]
Но когда я пытаюсь сделать что-то подобное с двоичным файлом, у меня не получается:
iex()> for << b1::size(2), b2::size(3), b3::size(3) >> = <<ch>> <- 'hello', do: b1
[]
Тем не менее, он хорошо сочетается в автономном режиме:
<< b1::size(2), b2::size(3), b3::size(3) >> = <<100>>
"d"
iex(282)> b2
4
iex(283)> b1
1
iex(284)> b3
4
Это также хорошо работает, когда я передаю условие соответствия материалов в качестве параметра secornd в for
:
iex(286)> for ch <- 'hello', << b1::size(2), b2::size(3), b3::size(3) >> = <<ch>>, do: b1
[1, 1, 1, 1, 1]
Мне интересно, можно ли сделать что-то вроде первого примера с двоичным файлом.