| << Previous | Suneido > Contents > Language > Data Types | Next >> |
Objects are Suneido's general-purpose containers. They can be used as arrays, lists, records. Objects are also used to represent instances of classes.
Support only is (==),
isnt (!=), subscript [], and member (.) operations.
Objects are equal if they have the same members, values, and classes.
Additional, user defined methods can be added by defining a class called "Objects".
Object literals can be written as follows:
object-literal:
# ( members )
list-member:
literal
named-members:
name: literal
name:
identifier
number
string
For example:
#(1, 2, "abc", "def") #(name: "Joe", age: 23) #(1, "abc", name: "Joe")
Nested object literals do not require the leading '#' for example:
#(name: "Joe", children: ("Sue", "Sam"))
Identifiers may be used as values, the following is equivalent to the last example:
#(name: Joe, children: (Sue, Sam))
Commas are optional, the following is equivalent to the last example:
#(name: Joe children: (Sue Sam))
Record literals are written similarly, except with curly braces instead of parenthesis:
#{name: "Joe", age: 23}
| << Previous | Suneido > Contents > Language > Data Types | Next >> |