首页 > 解决方案 > 在函数后声明标签

问题描述

我在 Oz 中有这段代码:

declare
fun {NewCounter}
C Bump Read in
C={NewCell 0}
fun {Bump}
C:=@C+1
@C
end
fun {Read}
@C
end
counter(bump:Bump read:Read)
end

我有两个问题:

1) C、Bump 和 Read 标签在 NewCounter 函数之后声明。它们是全球标签吗?

2) NewCounter 函数返回记录计数器。考虑到没有其他函数永远不会显式调用它,为什么我必须指定记录的名称(计数器)?

标签: ozmozart

解决方案


C、Bump 和 Read 是局部变量(NewCounter 函数的一部分)。

返回记录的标签在这里可能并不重要。但是客户端代码可以使用标签。在调试器中查看也很有用。


推荐阅读