【发布时间】:2017-09-26 15:45:04
【问题描述】:
我正在尝试在 Erlang 模块中创建一个非常简单的规范,但出现此错误。
未定义函数的规范 compare/2
这是我的代码:
-module(spec_example).
-spec compare(any(), any()) -> less | equal | greater.
-record(heap_node, { item :: any(),
children :: [#heap_node{}] }).
-record(priority_queue, { root :: #heap_node{} | nil,
comparer :: compare() }).
我无法在此处定义比较函数,因为它将作为外部参数提供。我在 GitHub 中找到了 similar examples,我猜它们都可以正常工作。
我在模块和头文件中都试过了,但错误是一样的。我一定错过了一些非常基本的东西。
【问题讨论】:
-
您的意思是使用
-type而不是-spec? -
@Dogbert 我是 Erlang 的新手。我不应该为函数使用 spec 属性吗?
标签: erlang