2

我有S1S2并且S3,我想做一些类似的东西:

if S1 != "" and S2 != "" and S3 != "" then do something.

4

2 回答 2

7

如果所有内容都必须为空才能执行某些操作,

情况 {S1,S2,S3} 的
    {[],[],[]} -> %% 空
    _ -> %% 不为空
结尾。
如果你需要知道哪个是空的
情况 {S1,S2,S3} 的
    {[],[],[]} -> %% 空
    {[],_,_} -> %% S1 为空
    {_,[],_} -> %% S2 为空
    {_,_,[]} -> %% S3 为空
结尾。
更简洁的代码!!

编辑
案例列表:member(true,[Each =:= [] || Each <- [S1,S2,S3]]) 的
    真->
        %% 至少其中一个是空的
    假->
        %% 都不是空的
结尾。

于 2012-08-22T06:03:21.113 回答
2

注意 Erlang 中的字符串只是整数列表,您可以执行以下操作:

case S1 =/= [] andalso S2 =/= [] andalso S3 =/= [] of
  true -> do_something;
  false -> do_something_else
end

使用""而不是[]也可以。

于 2012-08-22T01:13:46.330 回答