Inheritance 继承类型编译程序中未声明的字段
我尝试编译以下代码:Inheritance 继承类型编译程序中未声明的字段,inheritance,compiler-errors,nimrod,nim-lang,Inheritance,Compiler Errors,Nimrod,Nim Lang,我尝试编译以下代码: 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) student = TStudent(name: "Anton")
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)
student = TStudent(name: "Anton")
echo student.name
但我得到了以下错误:
错误:未声明的字段:“id”
id
如何不声明?代码示例直接来自教程。语言中是否发生了教程中未反映的变化
此外,如果我尝试运行以下代码:
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)
student = TStudent(name: "Anton")
echo student.name
我得到以下错误:
SIGSEGV:非法存储访问。(是否尝试从零开始读取?)
为什么?我担心您可能使用的是上一个稳定版本(0.9.2版于2013年5月发布)或旧的git签出,您强调的是编译器中的错误。现在使用git版本,您的第一个和最后一个示例都可以正常工作。在过去的几个月中,已经修复了与语言中的对象继承相关的几个bug(、和)
如果您决定为自己构建一个git版本(这一点都不可怕,尽管有时语言会出现倒退),请注意,因为网站可能还没有更新。在