functional-programming - 二进制字符串erlang的第一个字

标签 functional-programming erlang pattern-matching

我需要做这样的事情 <<"Some text in binary">>,它应该返回 <<"Some">。如果没有拆分功能,我怎么能做到这一点,只能通过模式匹配和 select/if cases with Erlang。谢谢。

最佳答案

虽然Atticapproach是正确的,有一个简单的解决方案(包括修剪前导空格):

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/

相关文章:

automated-tests - 如何在 eunit 中使用 debugMsg 以及如何在 eunit 测试中打印一些内容,尽管测试超时

scala - for::的模式匹配是如何实现的?

functional-programming - 陷入一个函数的无限循环

javascript - 从数组 Ramda 中按 id 删除对象

Erlang:为什么 -behaviour(supervisor) 给我 "undefined callback function"错误?

erlang - 如何使用 PEM key 文件在 Erlang 中通过 SSH 连接

scala - 是否存在 unapply 总是返回 Option 的规则?

F# 模式匹配可变长度分隔的单词,第一个单词是命令

list - 将项目列表分为两个奇数和偶数索引项目列表

r - 如何在 dplyr 中过滤列表参数和多个字符串的组合