Erlang 如何检查命令行的第一个值?

Erlang how to check the first value of command line?

下面这行告诉我用户在命令提示符下写了什么

Y= io:get_line("Send message --> ").

我的问题是,我想编写一个 if 条件来检查用户是否在行中输入“#$” 作为第一个参数 然后它会显示一些错误信息。

如有任何建议或意见,我们将不胜感激。提前致谢 !!

首先,您可能想要拆分您的论点:

Line = io:get_line("Send message --> "),
Args = string:tokens(Line, [$\s, $\t, $\n]).

现在你有了字符串参数列表,让我们使用模式匹配:

case Args of
    ["#$" | _TailArgs] -> 
        error("some error message");
    Args ->
        do_something_with(Args)
end

一个简单的解决方案:

case io:get_line("Send message --> ") of
    "#$" ++ _Rest ->
        error(something_wrong);
    Args ->
        work_with(Args)
end.