如何用 Io 语言创建“类”?
例如,我想尝试以下操作:
Dog pd
barry := Dog new("Barry")
barry pd
barry name println // Attribute of the class
barry allFoodItemsEaten println // Attribute of the class
lisa := Dog new("Lisa")
barry feed(12) // A Method
lisa feedSummary // A Method
我知道 Io 中没有类,但我想实现一个。 关于如何实施有什么建议吗?
我知道 Io 中没有类,但我想实现一个。
这就是你的问题。您无法创建类,只能克隆现有对象。对于您的情况,一种解决方案可能是
Dog := Object clone // Create a Dog object
Dog name := nil // Abstract name attribute
您可以通过进一步克隆来创建该“类”的“实例”
barry := Dog clone
barry name = "barry"
等
您可以使用 Dog 上的方法来模拟该行为:
Dog := Object clone do(
init := method(
// init attributes here, e.g.
self name := ""
)
new := method(name,
result := self clone
// init constructor values here
result name = name
result
)
)
barry := Dog new("Barry")
barry name println // will print Barry