Sather Home Page

Examples 8.1.2.5:
CAST

The features of the required library class CAST are used in individual examples. None of the examples given is a complete class nor necessarily a 'complete' method.

In all of the examples it will be assumed that the code shown is in a class called, say, EXAMPLE.

create

This feature creates a new object with the desired argument type for use in 'one-line' cast operations. It could be written in the EXAMPLE class as follows -

caster : CAST{CARD} :=  CAST{CARD}::create ;

from

This is the routine which provides the 'one-line' type case facility. Although this is not strictly essential to the Sather language, it is provided in the library to enhance program readability. For example, given the above object creation -

number : $NUMBER := 42 ;     -- which makes it a cardinal number!

val : CARD := caster.from(number) ;

which is equivalent to the rather longer version

     val : CARD ;
     number : $NUMBER := 42 ;     -- which makes it a cardinal number!

     typecase number
when CARD then
          val := number

     else
          raise number
     end

which is essentially how an implementer may choose to implement the from routine.


Specification Index Language Index Section 8 Index
Comments or enquiries should be made to Keith Hopper.
Page last modified: Thursday, 22 March 2001.
Produced with Amaya