會是怎樣匹配等之間的區別:二郎二進制匹配效率
fun(Binary) ->
[Value, Rest] = binary:split(Binary, <<101>>)
end
和
fun(Binary) ->
[Value, <<Rest/binary>>] = binary:split(Binary, <<101>>)
end
我想到一個可以簡單地增加一個計數器,因爲它穿越二進制,保持子二進制指針,另一個會複製一個新的二進制文件。有任何想法嗎?
會是怎樣匹配等之間的區別:二郎二進制匹配效率
fun(Binary) ->
[Value, Rest] = binary:split(Binary, <<101>>)
end
和
fun(Binary) ->
[Value, <<Rest/binary>>] = binary:split(Binary, <<101>>)
end
我想到一個可以簡單地增加一個計數器,因爲它穿越二進制,保持子二進制指針,另一個會複製一個新的二進制文件。有任何想法嗎?
我可以用兩種方式來思考模式匹配。
方法1:
[A,B] = [<<"abcd">>,<<"fghi">>]
方法2:
[A, <<B/binary>>] = [<<"abcd">>,<<"fghi">>]
除非你需要使它肯定B是二進制的,方法2將它更長的時間,幾微秒,因爲它不只是給B分配< <「fghi」>>,但是也要確保它是bianary。
但是,如果您需要比方法2更多的解析,則可以繼續進行,而方法1無法執行。
[A, <<B:8, Rest/binary>>] = [<<"abcd">>,<<"fghi">>].
我想你可以通過timer
模塊的tc/N
函數來測試它。