elixir - `def` 和 `defp` 有什么区别

标签 elixir

我正在阅读《Programming Phoenix》一书,我想知道 defdefp 之间有什么区别。

我的 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 with defp/2. A function defined with def/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/

相关文章:

带有 map 数组的 HTML 表单

elixir - Iex pry 一步一步?

elixir - prod环境中的 Assets ,以及文件上传

elixir - 如何通过迁移更改 Ecto 模型中的列名?

elixir - Elixir 脚本或 iex 可以在不创建新项目的情况下使用外部模块吗?

heroku - 在heroku上缩放 Phoenix

elixir - 有没有办法使用 ExUnit 中的共享示例?

elixir - 在 Elixir 中设置现有结构值?

elixir - 与和尝试/救援在 Elixir 中可以相同

elixir - 如何预加载关联并在 ecto 中返回它?