我的课程:
declare
class Collection
attr list
meth init
list := nil
end
meth put(X)
list := X|@list
end
meth get($)
if @list == nil then
nil
else
local X in
X = @list.1
list := @list.2
X
end
end
end
end
我的测试用法:
declare
C = {New Collection init}
{C put(4)}
{C put(5)}
{Browse {C get}}
错误:
%********************** static analysis error ******************* %** %** illegal number of arguments in object application %** %** Object: C %** Number found: 2 %** Expected: 1 %** in file "Oz", line 62, column 9 %** ------------------ rejected (1 error)
62行是"浏览"
这是因为Oz尝试通过传递结果参数来使用对象过程吗?如果是这样,功能方法的重点是什么?如何使用它们?
答案 0 :(得分:2)
调用这种方法的语法是:
{Browse {C get($)}}
原因是对象基本上是接收消息的有状态过程。 (语法很不寻常,最初很难理解。但是,它非常规则和强大。)