我尝试编译以下代码:
type
TPerson = object of TObject
name*: string
age: int
TStudent = object of TPerson
id: int
var
student: TStudent
person: TPerson
student = TStudent(name: "Anton", age: 5, id: 2)
但出现以下错误:
错误:未声明的字段:“ id”
怎么id
不申报?该代码示例直接来自于本教程。语言中的某些变化是否没有反映在本教程中?
另外,如果我尝试运行以下代码:
student = TStudent(name: "Anton")
echo student.name
我收到以下错误:
SIGSEGV:非法的存储访问。(试图从零开始读取?)
为什么?
恐怕您可能会使用Nimrod的最新稳定版本(2013年5月发布了0.9.2版)或旧的git checkout,您强调的是编译器中的错误。现在使用git版本https://github.com/Araq/Nimrod/commit/75ca6eb34fbc983d88961664fd1cfce5f8b44abf,您的第一个示例和最后一个示例都可以正常工作。在过去的几个月中,已修复了与该语言中的对象继承有关的若干错误(问题179,问题520,问题575和问题563)。
如果您决定构建自己的git版本(虽然有时语言会有所退缩,但一点也不吓人),请使用git的构建说明,因为该网站可能尚未更新。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句