Erlang中函数的返回值

8
以下函数将返回什么? ok atom 或 Cmd?
function_test() ->
    Cmd = os:cmd("ls"),
    io:format("The result of ls is:~p~n", [Cmd]).

如果它返回ok,那么如何重新构造它以返回Cmd,同时仍然使用io:format?

1
请注意,打印值和返回值是两个完全不同的概念。在这里,您打印Cmd的值,但是您返回io:format返回的值,即ok - rvirding
1个回答

15

Erlang中函数的最后一个表达式会被返回,对于你的代码来说,这个表达式是io:format 的结果,也就是ok

如果你想返回Cmd,你只需要将它放在函数的最后一个表达式即可:

function_test() ->
    Cmd = os:cmd("ls"),
    io:format("The result of ls is:~p~n", [Cmd]),
    Cmd.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接