バイナリの可変ビット数の一致に問題があります。バイナリの最初の数ビットを抽出するために、次のおもちゃの例に絞り込みました。
f(<<H:Bits, _/binary>>, Bits) ->
H.
コンパイラ(R15B01)が教えてくれvariable 'Bits' is unbound
ます。一方、これはうまくいきます:
f(X, Bits) ->
<<H:Bits, _/binary>> = X,
H.
そして、それは私が期待することを実行します。たとえばf(<<1,2,3,4>>, 8)
、1 が返され、f(<<1,2,3,4>>, 16)
258 が返されます。
最初のフォームが機能しないのはなぜですか? 対等でいいのではないですか?