You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Erlang中仅当元组所有元素相同时评估其首个元素?

解决方法

针对固定5元素的元组,有两种简单的实现方式:

方法一:模式匹配(推荐)

利用Erlang的模式匹配特性,直接匹配所有元素相同的元组结构,这是最直观且高效的方式:

case Five of
    {X, X, X, X, X} -> io:format("~p~n", [X]); % 满足条件时输出首个元素
    _ -> ok % 不满足条件时什么都不做,也可以换成你需要的处理逻辑
end.

当元组Five的5个元素完全相同时,会匹配到第一个分支,X就是首个元素,直接输出即可;否则进入第二个分支不处理。

方法二:列表遍历检查

如果需要更灵活的写法(比如以后元组长度可能变化),可以把元组转成列表,再检查所有元素是否和首个元素相等:

First = element(1, Five),
% 检查所有元素等于首个元素,满足则输出
lists:all(fun(Elem) -> Elem =:= First end, tuple_to_list(Five)) 
    andalso io:format("~p~n", [First]).

这里lists:all/2会遍历列表里的每个元素,只有所有元素都满足Elem =:= First时返回true,andalso是短路逻辑,只有前面条件为真才会执行后面的输出操作。

内容的提问来源于stack exchange,提问作者iMikou96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:31:35