我最近阅读了couch-db的源代码,我发现这个类型定义我不明白:
-type branch() :: {Key::term(), Value::term(), Tree::term()}.
-type path() :: {Start::pos_integer(), branch()}.
-type tree() :: [branch()].
我读过Erlang doc,但开始,键,值和树<的含义是什么? / STRONG>?据我所知,它们是Erlang变量!我在Erlang doc中找不到任何相关信息。
答案 0 :(得分:7)
Start
等只是术语各部分的描述性名称,以便人们更容易阅读类型定义。它们与实际变量名无关。
(旁注:不幸的是,即使在OTP R14B中,edoc
仍然无法阅读-type
和-spec
来生成HTML文档 - 它使用旧的@type
和@spec
代替。)
更新 official docs on -type
and -spec
。更多要搜索的内容是成功输入一词以及透析器和 typer 的手册。