Mozart / Oz给出错误:语句位置的表达式

时间:2014-03-29 17:59:40

标签: class methods attributes oz mozart

请考虑以下代码:

declare
class Test
   attr L
   meth init L:=nil end
   meth put(X) {Browse @L} end
   meth get {Browse @L} end
   meth isEmpty @L==nil end
   meth getList @L end
   meth setNil L:=nil end
   meth union(C) {Browse @L} end
end

当我编译这个类时,给出错误:语句位置的表达式。我正在检查我的小代码大约一个小时来修复这个错误,但没有运气。请帮我找到问题所在。 谢谢。

1 个答案:

答案 0 :(得分:3)

你的方法无法返回一些东西! isEmptygetList应为

meth isEmpty(R) R=(@L==nil) end
meth getList(R) R=@L end

你可以使用

T={New Test init}
{Browse {T isEmpty($)}}

做'好像它有一个返回值'

实际上{Browse {T isEmpty($)}}
相同 local R in {T isEmpty(R)} {Browse R} end

抱歉我的英文不好