二郎指定位串的類型沒有讓我做:我如何能夠通過可變
Type = bitstring.
<<FirstPart:8/Type, Rest/bitstring>> = some_binary.
雖然它讓我做的事:
所以,在比特字符串表達式,而我可以通過一個變量傳遞大小,它不讓我通過一個變量傳遞類型。有沒有解決方法?
二郎指定位串的類型沒有讓我做:我如何能夠通過可變
Type = bitstring.
<<FirstPart:8/Type, Rest/bitstring>> = some_binary.
雖然它讓我做的事:
所以,在比特字符串表達式,而我可以通過一個變量傳遞大小,它不讓我通過一個變量傳遞類型。有沒有解決方法?
您可以使用一個case語句作爲一種解決方法:
{FirstPart, Rest} = case Type of
{'bitstring', Len} ->
<<A:Len/bitstring, B/bitstring>> = Bin,
{A,B};
'integer' ->
<<A/integer, B/bitstring>> = Bin,
{A,B};
...
我沒有在這裏看到任何不尋常的東西,這使得處理不同「編碼類型」的條件不便。
case StringType of
byte_len ->
<<Len:8, String:Len/binary>> = SomeBinary,
String;
word_len ->
<<Len:32, String:Len/binary>> = SomeBinary,
String;
etc -> ...
end
第500個問題標籤「二郎」:O) – Zed 2010-01-17 17:05:06