相关疑难解决方法(0)

我可以在Erlang中制作自己的Guards吗?

我在网上看到了这个代码:

is_char(Ch) ->         
    if Ch < 0 -> false;  
       Ch > 255 -> false;
       true -> true      
    end.

is_string(Str) ->            
    case is_list(Str) of           
    false -> false;           
    true -> lists:all(is_char, Str)
    end.
Run Code Online (Sandbox Code Playgroud)

它是我alwais梦寐以求的守卫,因为它检查输入是否是一个字符串 - 但是,我不允许在erlang中使用它,为什么会这样?是否有解决方法?

我想能够写下这样的东西:

Fun(Str) when is_string(Str) -> Str;
Fun(Int) when is_integer(Int) -> io:format("~w", [Int]).
Run Code Online (Sandbox Code Playgroud)

甚至更好地在消息上使用它.

erlang guard

8
推荐指数
2
解决办法
1060
查看次数

标签 统计

erlang ×1

guard ×1