gpt4 book ai didi

types - 检查变量是否属于 Erlang 中的自定义类型?

转载 作者:行者123 更新时间:2023-12-02 06:17:23 25 4
gpt4 key购买 nike

有没有办法在 Erlang 中检查一个变量是否属于自定义类型?

假设我在 .hrl 文件中定义了一些记录和类型:

-record(custom_record, {
attr1 :: list(),
attr2 :: binary(),
attr3 :: tuple()
}).

-record(another_record, {
attr1 :: list(),
attr2 :: binary(),
}).

-type custom_record() :: #custom_record{}.

-type another_record() :: #another_record{}.

-type custom_records() :: custom_record() | another_record().

在我的 Erlang 代码中是否有一种简单的方法来检查记录是否为 custom_record?像这样的东西会很好:

is_custom_type(CustomRecord, custom_records). %=> true

我查看了文档,没有看到执行此操作的任何内置函数。

最佳答案

Erlang 标准库包含 is_record() BIF,它检查元组的第一个元素是否是合适的原子,参见 is_record/2所以你可以像 is_record(Var, custom_record) 一样测试你的变量。

关于types - 检查变量是否属于 Erlang 中的自定义类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23942700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com