【发布时间】:2016-04-21 11:03:49
【问题描述】:
大家好,我正在关注来自 http://learnelixir.tv 的截屏视频,这太棒了,这是我的第一个基于函数的编程语言,但我真的很喜欢它。
我目前正在学习列表,我们制作了一个自定义长度函数,如下所示:
defmodule MyList do
def length(list) do
length(list, 0)
end
defp length([], count) do
count
end
defp length([_|t], count) do
length(t, count + 1)
end
end
效果很好
MyList.length([1, 2, 3, 4])
// 4
所以据我了解,我们最初将第一次调用传递给非私有函数,调用length-private 现在虚拟机是否正常,有 2 个版本,一个接受空数组,另一个那需要一个不为空的吗?
为什么它不先直接跳转到length([], count) 并返回count // 0 而是转到最后声明的length 函数,
(小问题)
count 如何在 2 个私有长度函数之间共享,[_|t] 如何改变数组并在 2 个函数之间共享它?
【问题讨论】:
标签: elixir