Elixir 进口

2023-12-15 14:34 更新
我们使用import来简单地从其它模块中不带前缀地获取函数或宏.举个例子,如果我们想要多次使用List模块中的duplicate/2函数,我们可以简单地进口它:
iex> import List, only: [duplicate: 2]
List
iex> duplicate :ok, 3
[:ok, :ok, :ok]

这时,我们只进口了List模块中的duplicate函数(带两个参数).选项:only的作用是避免将模块中的所有函数都导入命名空间中,选项:except的作用是将模块中除了列表里的其它所有函数都导入.

import也支持将:only设置为:macros:functions.例如,想要进口所有宏,可以这样写:

import Integer, only: :macros

或者进口所有函数:

import Integer, only: :functions

注意import也有语法范围.这意味着我们可以在函数定义中进口特定的宏或函数:

defmodule Math do
  def some_function do
    import List, only: [duplicate: 2]
    duplicate(:ok, 10)
  end
end

在上述例子中,进口的List.duplicate/2只在这个特定的函数中时可见的.duplicate/2在这个模块中的其它任何函数中都是不可用的(或其它任何模块).

注意import一个模块就自动require了它.


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号