gpt4 book ai didi

inheritance - 编译 Nimrod 程序的继承类型中的未声明字段

转载 作者:行者123 更新时间:2023-12-04 03:07:16 24 4
gpt4 key购买 nike

我尝试编译以下代码:

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)

但我收到以下错误:

Error: undeclared field: 'id'



怎么样 id没有声明?代码示例直接来自教程。语言中的某些内容是否在教程中没有反射(reflect)出来?

另外,如果我尝试运行以下代码:
student = TStudent(name: "Anton")
echo student.name

我收到以下错误:

SIGSEGV: Illegal storage access. (Attempt to read from nil?)



为什么?

最佳答案

恐怕您使用的可能是 Nimrod 的最后一个稳定版本(版本 0.9.2 于 2013 年 5 月发布)或旧的 git checkout,您强调的是编译器中的错误。现在使用 git 版本 https://github.com/Araq/Nimrod/commit/75ca6eb34fbc983d88961664fd1cfce5f8b44abf您的第一个和最后一个示例都可以正常工作。在过去的几个月中,已经修复了与语言中的对象继承相关的几个错误( issue 179issue 520issue 575issue 563 )。

如果您决定为自己构建一个 git 版本(它一点也不可怕,尽管有时语言中存在回归)请 use the build instructions from the git因为网站可能还没有更新。

关于inheritance - 编译 Nimrod 程序的继承类型中的未声明字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19736951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com