惯用药剂 - 功能参数样式

时间:2014-01-11 16:46:17

标签: function parameters elixir

绘制变量是列表。我想将顶部卡片从抽奖中移开并将其添加到手中。这是功能:

def pick_up_card(draw, hand) do
  [new_card | new_draw ] = draw
  {hand ++ [new_card], new_draw}
end

可以通过包含[head |。]将其重写为更短的一行tail]参数列表中的一部分:

def pick_up_card([new_card | new_draw], hand) do
  {hand ++ [new_card], new_draw}
end

这会是更惯用的Elixir吗?它会损害可读性吗?我想如果函数定义具有传入列表的名称而不是Head | Tail调用,代码将更容易阅读。

这是个人品味的问题,还是我更好地保存了这行代码并在函数定义中坚持使用Head | Tail调用?

1 个答案:

答案 0 :(得分:3)

在我看来,最好把它放在参数列表中。你可能想写另一个条款

def pick_up_card([],_),执行:提高“Nothing to pickup”

在不久的将来,不是吗? :)或者关心其他特殊情况 - 所以最好从头开始把它放在标题中。