Elixir 進(jìn)口

2023-12-15 14:34 更新
我們使用import來簡單地從其它模塊中不帶前綴地獲取函數(shù)或宏.舉個(gè)例子,如果我們想要多次使用List模塊中的duplicate/2函數(shù),我們可以簡單地進(jìn)口它:
iex> import List, only: [duplicate: 2]
List
iex> duplicate :ok, 3
[:ok, :ok, :ok]

這時(shí),我們只進(jìn)口了List模塊中的duplicate函數(shù)(帶兩個(gè)參數(shù)).選項(xiàng):only的作用是避免將模塊中的所有函數(shù)都導(dǎo)入命名空間中,選項(xiàng):except的作用是將模塊中除了列表里的其它所有函數(shù)都導(dǎo)入.

import也支持將:only設(shè)置為:macros:functions.例如,想要進(jìn)口所有宏,可以這樣寫:

import Integer, only: :macros

或者進(jìn)口所有函數(shù):

import Integer, only: :functions

注意import也有語法范圍.這意味著我們可以在函數(shù)定義中進(jìn)口特定的宏或函數(shù):

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

在上述例子中,進(jìn)口的List.duplicate/2只在這個(gè)特定的函數(shù)中時(shí)可見的.duplicate/2在這個(gè)模塊中的其它任何函數(shù)中都是不可用的(或其它任何模塊).

注意import一個(gè)模塊就自動(dòng)require了它.


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)