我正在阅读《Programming Phoenix》一书,我想知道 def
和 defp
之间有什么区别。
我的 Controller 中有几个功能 - 其中大多数都是这样的操作:
def new (conn, _params) do
...
end
这本书让我在这个 Controller 中创建另一个函数,它不是像这样的典型 Controller 操作:
defp user_videos(user) do
...
end
所以我的问题是在 Elixir 中定义函数时如何知道何时使用 defp
以及何时使用 def
?
最佳答案
来自Elixir’s documentation on functions within modules :
Inside a module, we can define functions with
def/2
and private functions withdefp/2
. A function defined withdef/2
can be invoked from other modules while a private function can only be invoked locally.
因此defp
定义了一个私有(private)函数。
关于elixir - `def` 和 `defp` 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35735762/