當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Elixir Record.extract用法及代碼示例


Elixir語言中 Record.extract 相關用法介紹如下。

用法:

extract(name, opts)
@spec extract(
  name :: atom(),
  keyword()
) :: keyword()

從 Erlang 文件中提取記錄信息。

返回一個帶引號的表達式,其中包含作為元組列表的字段。

name 是提取記錄的名稱,應該是一個原子 at compile time

選項

此函數需要以下選項之一,這些選項彼此互斥(即,同一調用中隻能使用其中一個):

  • :from - (表示文件路徑的二進製文件)包含要提取的記錄定義的 Erlang 文件的路徑;使用此選項,此函數使用與 Erlang 模塊中使用的 -include 屬性相同的路徑查找。

  • :from_lib - (表示文件路徑的二進製文件)包含要提取的記錄定義的 Erlang 文件的路徑;使用此選項,此函數使用與 Erlang 模塊中使用的 -include_lib 屬性相同的路徑查找。

它還接受以下可選的非排他性選項:

  • :includes -(作為二進製文件的目錄列表)如果要提取的記錄依賴於相對包含,則此選項允許開發人員指定存在這些相對包含的目錄。

  • :macros -(宏名稱和值的關鍵字列表)如果要提取的記錄取決於宏的值,則此選項允許設置這些宏的值。

這些選項在編譯時應該是文字(包括二進製值)。

例子

iex> Record.extract(:file_info, from_lib: "kernel/include/file.hrl")
[
  size: :undefined,
  type: :undefined,
  access: :undefined,
  atime: :undefined,
  mtime: :undefined,
  ctime: :undefined,
  mode: :undefined,
  links: :undefined,
  major_device: :undefined,
  minor_device: :undefined,
  inode: :undefined,
  uid: :undefined,
  gid: :undefined
]

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Record.extract(name, opts)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。