[英]Elixir: Difference between require and import
require 和 import 有什么区别?
iex> require Integer
Integer
iex> Integer.is_odd(3)
true
和
iex> import List, only: [duplicate: 2]
List
iex> duplicate :ok, 3
[:ok, :ok, :ok]
似乎他们都做同样的事情……从其他模块获取宏或函数。
从文档:
每当我们想在不使用完全限定名称的情况下轻松访问其他模块的函数或宏时,我们都会使用 import 。
还有
请注意,自动
importing
模块requires
它。
所以如果你import Integer
,你可以直接调用is_odd
,你不需要Integer.is_odd
根据这篇文章:
编译期间正在评估宏功能。 如果你想使用它,你需要先编译它。 这正是
require
作用。
在后台,它还为所需模块提供别名,这意味着您可以像使用alias
一样as
选项传递:
require TestModule, as: Test
import 指令允许您通过导入全部或部分函数/宏来跳过模块部分:
import IO, only: [puts: 1]
puts "Hello"
如前所述,它还在后台调用require
来首先编译它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.