gpt4 book ai didi

ERlang - 试图找到列表的组成部分的长度

转载 作者:行者123 更新时间:2023-12-04 06:48:21 28 4
gpt4 key购买 nike

猜它迟到了,我是初学者,只需要一点帮助..

我试图找到列表的长度..但不是列表本身,而是列表中值的长度..

我拿这样的东西:

   Other = [<<"366">>,0,
<<1>>,
<<"344">>,<<"Really"
<<1>>,
<<"989">>,<<"NotReally">>
<<1>>,
<<"345">>,4,
<<1>>,
<<"155">>,"209.191"]

我真的想先将 Other 转换为它的 RAW 组成二进制文件

例子:
Other = [<<3>>,<<4>>,<<7>>,<<56>>,<<45>>,<<56>>...]

当然,这是原始其他外观的示例(不正确的转换值)。所以那里的所有值都有最基本的二进制数据。

然后我可以简单地迭代计算每个 <<_>> 并确定总消息长度。

希望我足够清楚以找到解决方案。

感谢大家的帮助,GN

最佳答案

如果你想要做的只是找到整个结构的长度,我会尝试这样的事情:

my_length(X) when is_integer(X) -> 1;
my_length(X) when is_binary(X) -> erlang:size(X);
my_length(Lst) when is_list(Lst) ->
lists:sum([my_length(X) || X <- Lst]).

如果您真的想构建您的结构的平面版本,那么 erlang:list_to_binary 可以让您非常接近您的需要,然后只需调用 size 即可。 (实际上,这可能比我的第一次尝试要好。)
1> erlang:list_to_binary([<<"366">>,0,<<"155">>,"209.191"]).
<<51,54,54,0,49,53,53,50,48,57,46,49,57,49>>

关于ERlang - 试图找到列表的组成部分的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3474943/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com