Erlang - 案例构建

发布于 2024-09-24 01:21:29 字数 375 浏览 0 评论 0原文

我是 Erlang 新手,并且尝试过一些 Erlang 结构。 我的程序应该表现得像这样:

if x == 42:
    print "Hi"
else:
    print "Hello"

这是我在 Erlang 中的代码

-module(tested).
-export([main/0]).

main() ->
  {ok, X} = io:fread("","~d"),
  case X == 42 of
    true -> io:fwrite("Hi\n");
    false -> io:fwrite("Hello\n")
  end.

提前感谢您的帮助。

I'm new to Erlang and I've tried some Erlang constructions.
My program should behave something like that:

if x == 42:
    print "Hi"
else:
    print "Hello"

Here is my code in Erlang

-module(tested).
-export([main/0]).

main() ->
  {ok, X} = io:fread("","~d"),
  case X == 42 of
    true -> io:fwrite("Hi\n");
    false -> io:fwrite("Hello\n")
  end.

Thanks in advance for help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋风の叶未落 2024-10-01 01:21:29

使用 {ok, [X]} = io:fread("","~d")X 两边的括号)。

fread 返回一个列表作为元组的第二个元素(这在您读取多个标记的情况下有意义),因此您需要先将该元素从列表中取出,然后才能进行比较到 42

请注意,您可以简单地对 X 本身进行模式匹配,而不是对 == 结果进行模式匹配,即:

case X of
  42 -> io:fwrite("Hi\n");
  _ -> io:fwrite("Hello\n")
end.

Use {ok, [X]} = io:fread("","~d") (brackets around X).

fread returns a list as the second element of the tuple (which makes sense in case you're reading more than one token), so you need to get the element out of the list before you can compare it to 42.

Note that instead of pattern matching on the result of ==, you could simply pattern match on X itself, i.e.:

case X of
  42 -> io:fwrite("Hi\n");
  _ -> io:fwrite("Hello\n")
end.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文