我是Erlang的新手,我尝试了一些Erlang结构.我的程序应该像这样:
if x == 42:
print "Hi"
else:
print "Hello"
Run Code Online (Sandbox Code Playgroud)
这是我在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.
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
使用{ok, [X]} = io:fread("","~d")( 两边的括号X)。
fread返回一个列表作为元组的第二个元素(如果您正在读取多个标记,这很有意义),因此您需要先将该元素从列表中取出,然后才能将其与42.
请注意,您可以简单地对 X 本身进行模式匹配,而不是对 == 结果进行模式匹配,即:
case X of
42 -> io:fwrite("Hi\n");
_ -> io:fwrite("Hello\n")
end.
Run Code Online (Sandbox Code Playgroud)