[Oberon] How to mimic an associative array
Douglas G. Danforth
danforth at greenwoodfarm.com
Fri Dec 3 22:38:03 CET 2010
On 12/3/2010 9:23 AM, Duke Normandin wrote:
> However CGILib would not know in advance
> what data-type was being passed to it. It has to be able to behave
> like a dynamically typed language/module. Is that possible in
> Oberon-2? or with the code that you were so kind to put together?
Duke,
Yes it is possible to define abstract objects whose type at runtime
can be determined and acted upon accordingly. Here is an
example.
TYPE
Object = POINTER TO RECORD END; (* Abstract object *)
O1 = POINTER TO RECORD(Object) .... END; (* concrete object *)
O2 = POINTER TO RECORD(Object)....END; (* concrete object *)
....
On = POINTER TO RECORD(Object)....END; (* concrete object *)
PROCEDURE Proc (o: Object);
BEGIN
IF o IS O1 THEN
...
ELSIF o IS O2 THEN
....
ELSIF o IS On THEN
...
ELSE
...
END
(PS: you can also use the operator WITH which casts the object o into
specific types)
-Doug
More information about the Oberon
mailing list