【问题标题】:Erlang: Prompt until User chooses to ExitErlang:提示直到用户选择退出
【发布时间】:2016-12-11 02:57:07
【问题描述】:

我是 Erlang 的新手。

但我的问题是我似乎无法弄清楚如何创建将继续提示用户的函数,直到他们输入某种“退出”按钮。

我在下面做了一个非常简单的程序,我认为如果用户输入“4”就会退出,但我想错了:

reprompt() ->
  {ok, X} = io:fread("Prompt>", "~s"),
  case X of
    4 -> io:format("exit");
    _ -> reprompt()
  end.

我尝试过其他变体,但大多数都遵循相同或相似的模式。

有什么建议吗?

【问题讨论】:

    标签: recursion functional-programming erlang


    【解决方案1】:

    io:fread/2 返回一个列表。使用"~s" 格式,它将返回一个包含一个字符串的列表。如果你想在X中输入一个数字,你可以这样做:

    {ok, [X]} = io:fread("Prompt>", "~d"),
    

    请注意,如果用户输入的不是数字,这将崩溃。您应该使用case 表达式并为{ok, [X]}{error, Reason} 添加子句。

    【讨论】:

    • 是的,这解决了所有问题。有时是生活中的小事。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 2014-04-12
    相关资源
    最近更新 更多