gpt4 book ai didi

Erlang:如何导入模块的类型声明?

转载 作者:行者123 更新时间:2023-12-03 19:53:43 31 4
gpt4 key购买 nike

例如,httpc 库 (http://erlang.org/doc/man/httpc.html#request-4) 定义了一些类型:

status_line() = {http_version(), status_code(), reason_phrase()}
http_version() = string(), for example, "HTTP/1.1"
status_code() = integer()
reason_phrase() = string()
content_type() = string()
headers() = [header()]
header() = {field(), value()}

在我的代码中,我想编写一个函数,例如,使用一个 Result 并产生其他东西。但是, rebar3 dialyzer提示:
===> Verifying dependencies...
===> Compiling xxx
===> Compiling src/httpabs.erl failed
src/httpabs.erl:35: type headers() undefined
src/httpabs.erl:35: type status_code() undefined
src/httpabs.erl:35: type status_line() undefined

那么如何导入这些类型声明以便我可以重用它们呢?

最佳答案

通常,通过在模块名称前加上前缀来使用从另一个模块导出的类型,类似于使用导出函数的方式:module:type_name() .

但是,您提到的类型仅在文档中使用;它们实际上并不是从 httpc 导出的。模块。

您可以搜索-export_type Erlang/OTP 源代码树中的指令;我不知道有什么其他方法可以知道实际导出了哪些类型。

关于Erlang:如何导入模块的类型声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40641883/

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