'Io Language Create Class

How can I create a "Class" in Io language?

For example, I want to try the following:

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         

I know there are no classes in Io but I want to implement one. Any suggestions of how to implement that?



Solution 1:[1]

I know there are no classes in Io but I want to implement one.

There's your issue. You cannot create classes, you can only clone existing objects. In your case, one solution could be

Dog := Object clone  // Create a Dog object
Dog name := nil  // Abstract name attribute

You can create "instances" of this "class" by cloning it further

barry := Dog clone
barry name = "barry"

etc.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1