当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。