swirl
Guide to OmniMark 9   OmniMark home
docs home 
IndexConceptsTasksSyntaxLibrariesLegacy LibrariesErrors
 
  Related Syntax    
declaration/definition  

optional

 
 

Syntax

argument-class argument-type argument-name optional (initial {initial-values})?


Purpose

Declares a function's argument as optional. An optional argument can be omitted from a call by omitting the preceding function argument separator together with the value of the argument.

The initial value of an optional function argument can be a dynamic value. The default initial value is calculated each time the function is called and the default value is needed. This means that default values can depend on global and constant values.

A value argument that is declared optional can also be provided with a default value or values in curly braces ("{ }"). Modifiable and read-only arguments can also be declared optional, but they can't have default values. Remainder arguments can't be optional.

When an optional argument with no default value is omitted from a function call, it is illegal to access that argument from within the function in any way, except to test whether it was specified. (Whether an optional argument was specified in a call can be determined using the is specified argument test.) An optional argument can be passed to another function as an optional argument even if it was not specified in the function call .

In particular, for an argument whose value is not specified in the function call, these two statements can be made:

For example, the following function is defined with an optional argument:

  define function increment modifiable integer x
             by value integer y optional initial {1} as
      set x to x + y

    Related Syntax
 
 
 

Top [ INDEX ] [ CONCEPTS ] [ TASKS ] [ SYNTAX ] [ LIBRARIES ] [ LEGACY LIBRARIES ] [ ERRORS ]

OmniMark 9.1.0 Documentation Generated: September 2, 2010 at 1:51:21 pm
If you have any comments about this section of the documentation, please use this form.

Copyright © Stilo International plc, 1988-2010.