我应该对每个返回值进行模式匹配吗?

Jer*_*ond 5 erlang pattern-matching

当我在Erlang编程时,我是否应该通过模式匹配来验证函数调用的所有返回值,即使我不打算使用返回值?到目前为止我见过的大多数Erlang API都没有抛出错误的异常(但返回类似{error,Error}的东西),所以我必须验证返回值是吗?我不需要担心的任何例外吗?

Chr*_*ian 11

当出现问题时,尽早崩溃是一种很好的编程风格.之后执行的任何操作都将在系统处于未知状态时完成.

除非您打算处理错误值并对其执行某些操作,否则您将为成功案例编写代码.如下面的小悲伤循环:

life() ->
  ok = work(),
  ok = rest(),
  life().
Run Code Online (Sandbox Code Playgroud)

  • @Jeremy,您可以保存文档,然后在下一行匹配.`doc = my_api_call()`,`ok = is_valid_doc(Doc)`. (3认同)