ponylang:在另一个构造函数中调用构造函数方法?
ponylang: call constructor method in another constructor?
环境:小马语 0.9.0
class Wombat
let name: String
var _hunger_level: U64
new create(name': String) =>
name = name'
_hunger_level = 0
new hungry(name': String, hunger': U64) =>
name = name'
_hunger_level = hunger'
尝试以下,编译器抱怨:constructor with undefined fields
new create(name': String) =>
hungry(name', 0)
哪里可以得到准确的解释?
Pony 中的构造函数调用总是会创建一个新对象,没有委托构造函数。
new create(name': String) =>
hungry(name', 0)
在您的示例中,对 hungry
的调用未应用于在 create
中初始化的对象,而是应用于新分配的 Wombat
。
在 Pony 伪代码中,这才是真正发生的事情。
new create(this: Wombat, name': String) =>
let new_wombat = Wombat_Alloc()
hungry(new_wombat, name', 0)
环境:小马语 0.9.0
class Wombat
let name: String
var _hunger_level: U64
new create(name': String) =>
name = name'
_hunger_level = 0
new hungry(name': String, hunger': U64) =>
name = name'
_hunger_level = hunger'
尝试以下,编译器抱怨:constructor with undefined fields
new create(name': String) =>
hungry(name', 0)
哪里可以得到准确的解释?
Pony 中的构造函数调用总是会创建一个新对象,没有委托构造函数。
new create(name': String) =>
hungry(name', 0)
在您的示例中,对 hungry
的调用未应用于在 create
中初始化的对象,而是应用于新分配的 Wombat
。
在 Pony 伪代码中,这才是真正发生的事情。
new create(this: Wombat, name': String) =>
let new_wombat = Wombat_Alloc()
hungry(new_wombat, name', 0)