gpt4 book ai didi

erlang - erlang 中的类型与不透明指令

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

-opaque-type 有什么区别?我在 erlang 核心模块中看到了两者,但感觉不到区别。是否可以同时使用 -export_type

最佳答案

%% module1.erl
-export_type([my_tup1/0, my_tup2/0]).
-type my_tup1() :: {any(), any()}.
-opaque my_tup2() :: {any(), any()}.

%% module2.erl
-spec foo1(module1:my_tup1()) -> ok.
foo1({_, _}) -> ok. %% fine

-spec foo2(module1:my_tup2()) -> ok.
foo2({_, _}) -> ok.
%% Dialyzer warning, because you are looking at
%% the internal structure of a my_tup2() term.
%% If you defined the same function in the module module1, it wouldn't give a warning.

foo2(_) -> ok. %% no warning again.

是的,您可以两者都导出,如果不导出,则没有区别。

关于erlang - erlang 中的类型与不透明指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398295/

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