我目前正在学习elixir,我想知道这三个实现是否真的是一个选择问题,或者有一些与性能或其他事情有关的最佳实践,换句话说是否有最好的实现?
我的第一个实现是第三个(...我知道),但如果我必须选择,我肯定会选择第二个.第一个对我来说似乎很奇怪,因为我将函数定义了3次
谢谢 !
@spec count(list) :: non_neg_integer
def count(l), do: count(l, 0)
defp count([], acc), do: acc
defp count([_ | tail], acc), do: count(tail, acc + 1)
@spec count(list) :: non_neg_integer
def count(l) do
case l do
[] -> 0
[_|tail] -> 1 + count(tail)
end
end
@spec count(list) :: non_neg_integer
def count(l) do
do_count(l, counter)
end
defp do_count(list, counter \\ 0) do
cond do
list == [] -> counter
true ->
counter = counter + 1
do_count(tl(list), counter) …
Run Code Online (Sandbox Code Playgroud) 我目前正在学习python / django作为自己的教程,我已经做到了:
手动进行“实例许可”似乎很复杂,对吧?
干杯