2
我試圖解析一個二進制文件,當它涉及到返回裝在小尾數爲16位數字,我希望這會工作:空二進制列表與模式匹配
foo(Bin, Bits) when is_binary(Bin) ->
<<A, B, C, D, _Rest>> = Bin,
(bar(<<A, B>>, Bits) =/= 0) and (bar(<<C, D>>, Bits) =/= 0).
bar(<<N:16/little-unsigned-integer>>, Bits) ->
binary:at(Bits, N).
不幸的是,當Bin爲4個字節或更少時,匹配器不工作。有沒有更好的方法使其餘的可以是空的?如果我可以避免在調用者中測試二進制長度,那麼效果會更好。
如果輸入長度小於4個字節,什麼會匹配'C'或'D'? – sarnold