我需要做这样的事情 <<"Some text in binary">>,它应该返回 <<"Some">。如果没有拆分功能,我怎么能做到这一点,只能通过模式匹配和 select/if cases with Erlang。谢谢。
最佳答案
虽然Attic的 approach是正确的,有一个简单的解决方案(包括修剪前导空格):
first_word_bin(Bin) ->
first_word_bin(ltrim(Bin), <<>>).
first_word_bin(<<>>, Acc) -> Acc;
first_word_bin(<<$\s, _/binary>>, Acc) -> Acc;
first_word_bin(<<X, Bin/binary>>, Acc) ->
first_word_bin(Bin, <<Acc/binary, X>>).
ltrim(<<$\s, Bin/binary>>) -> ltrim(Bin);
ltrim(Bin) -> Bin.
关于functional-programming - 二进制字符串erlang的第一个字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30700471/