Classes and objects
Note
Added in 0.15-beta
Nougaro is an object-oriented programming language, which means you can create objects using classes.
Class definition
To define a class, use this syntax:
class Name
...
end
To create attributes, just use the basic var id = value
syntax:
class Name
var a = 3
var b = 1
end
To create methods, just use the basic def
syntax. Access to object’s attributes with this
:
class Name
var a = 3
var b = 1
def increment_b(by)
var this.b += 1
end
def get_a()
return this.a
end
end
Methods are attributes themselves.
Methods
Internal type: method
.
No operation can be used on methods.
Methods are true in boolean context.
Changed in 0.22.0-beta
Prior to 0.22.0-beta, methods were false in boolean context.
Constructor value
Internal type: constructor
.
No operation can be used on constructors.
Constructors are false in boolean context.
Inheritance
To inherit from another class, use the class Name(Iherit)
syntax:
class ChildOfName(Name)
var c = 3
def set_c(new_value)
var this.c = new_value
end
def a_plus_b_plus_c()
return this.get_a() + this.b + this.c
end
end
Object
Classes can be instanced into objects by calling them.
Example:
var instance = Name()
instance.increment_b(10)
assert instance.b == 11
Internal type: Name
(depends on the class’ name).
No operation can be used on objects.
Objects are false in boolean context.
Example
See the stack.noug
example located in ./examples/
in the main Nougaro repository.