繁体   English   中英

Elixir:require 和 import 的区别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM