Difference between revisions of "Recital Variables and Constants"
Yvonnemilne (Talk | contribs) (→Assigning a Value to a Variable) |
Yvonnemilne (Talk | contribs) |
||
Line 7: | Line 7: | ||
<code lang="recital"> | <code lang="recital"> | ||
− | private | + | private nVar as numeric |
// Valid assignment | // Valid assignment | ||
− | + | nVar = 1234 | |
// Throws error | // Throws error | ||
− | + | nVar = 'a character value' | |
</code> | </code> | ||
Line 26: | Line 26: | ||
<code lang="recital"> | <code lang="recital"> | ||
− | public | + | public cVar1 as character = 'start value' |
− | private | + | private cVar1 as character = 'start value' |
− | local | + | local cVar1 as character = 'start value' |
− | store 'new value' to | + | store 'new value' to cVar1 |
− | + | cVar1 = 'newer value' | |
− | + | cVar1 := 'newest value' | |
</code> | </code> | ||
Line 37: | Line 37: | ||
<code lang="recital"> | <code lang="recital"> | ||
− | store 'new value' to | + | store 'new value' to cVar1, cVar2 |
</code> | </code> | ||
Line 44: | Line 44: | ||
<code lang="recital"> | <code lang="recital"> | ||
− | + | nVar = 1234 | |
− | echo | + | echo nVar |
− | echo m. | + | echo m.nVar |
− | echo m-> | + | echo m->nVar |
</code> | </code> | ||
Line 70: | Line 70: | ||
<code lang="recital"> | <code lang="recital"> | ||
− | if isset( | + | if isset(nVar) |
− | // | + | // nVar exists |
endif | endif | ||
</code> | </code> | ||
Line 85: | Line 85: | ||
<code lang="recital"> | <code lang="recital"> | ||
− | if isset( | + | if isset(nVar) |
− | unset( | + | unset(nVar) |
endif | endif | ||
</code> | </code> | ||
Line 97: | Line 97: | ||
<code lang="recital"> | <code lang="recital"> | ||
− | + | cVar = "Hello World" | |
− | ? type(" | + | ? type("cVar") |
C | C | ||
− | ? is_string( | + | ? is_string(cVar) |
.T. | .T. | ||
</code> | </code> | ||
Line 111: | Line 111: | ||
<code lang="recital"> | <code lang="recital"> | ||
nVAR = -12.34 | nVAR = -12.34 | ||
− | ? type(" | + | ? type("nVar") |
N | N | ||
− | ? is_float( | + | ? is_float(nVar) |
.T. | .T. | ||
− | ? is_int( | + | ? is_int(nVar) |
.T. | .T. | ||
</code> | </code> |
Revision as of 15:11, 12 November 2009
Contents
Recital Variables and Constants
An Introduction to Recital Variables
Naming and Creating a Variable
Variable names must begin with a letter (A-Z, a-z) or an underscore (-), followed by any combination of letters, digits or underscores. The variable name can be of any length, but only the first 32 characters are significant, so these must be unique. Recital ignores the case of letters, so m_var, M_VAR, and m_VaR would all be treated as the same memory variable name.
The name given to a variable has no bearing on the type of data that is, or can be, stored in it. By default, Recital is a loosely typed language and the type of data stored in a particular variable can be changed at any time. Variables can be declared as a particular data type, and in this case only values of the correct data type can be assigned.
private nVar as numeric // Valid assignment nVar = 1234 // Throws error nVar = 'a character value'
When set strict is on, variables must be declared before their value can be assigned. By default, set strict is off and pre-declaration is not required. Variables can be declared as public, private or local and will be initialized as a logical false (.F.).
public cVar1 as character, nVar1 private cVar2, nVar2 as numeric local cVar3, nVar3, dVar3 as date
Assigning a Value to a Variable
Values are assigned to memory variables at the time of declaration or using the store command, the equals = operator or the inline assignment := operator.
public cVar1 as character = 'start value' private cVar1 as character = 'start value' local cVar1 as character = 'start value' store 'new value' to cVar1 cVar1 = 'newer value' cVar1 := 'newest value'
Note that the store command can assign a value to more than one memory variable in a single command.
store 'new value' to cVar1, cVar2
Accessing a Variable
Variables can be accessed using the variable name. The memory variable pointer m-> or m. prefix is optional.
nVar = 1234 echo nVar echo m.nVar echo m->nVar
Changing the Type of a Variable
The type() or vartype() functions can be used to determine the data type of any variable.
- All Variables
- cast() - perform data type conversion
- etos() - perform data type to string
- tostring() - perform data type to stringconversion
- Character Variables:
- Date and Datetime Variables:
- Numeric Variables
- Logical Variables
- ltos() - perform logical to string conversion
Checking Whether a Variable Exists
The isset() function can be used to check whether a variable exists.
if isset(nVar) // nVar exists endif
Variable Scope
Public variables are globally visible, they are accessible and can be changed from any part of an application. If the application is run from the Interactive Prompt, then any public variables can still be accessed even after the application ends. Any variables created at the Interactive Prompt are automatically created as public variables.
Private variables are only visible within the declaring module (program, procedure, User Defined Function) and any modules called by that declaring module. Any variables accessed within a module that are not pre-declared are automatically created as private variables. When the module returns, then all of the memory variables and arrays that were declared by the private command are released.
Local variables are only visible within the declaring module and are released when the module returns. Local variables differ from private variables in that a local variable is not visible to lower level procedures or functions.
To manually release a memory variable, use the unset() function:
if isset(nVar) unset(nVar) endif
Understanding Recital Variable Types
Recital Character Variables
Character variables contain a string of ASCII characters up to 65535 characters in length.
The type() function returns 'C' for character variables and the is_string() function returns .T. (true).
cVar = "Hello World" ? type("cVar") C ? is_string(cVar) .T.
Recital Numeric Variables
Numeric variables contain a signed or unsigned integer number of up to 16 digits (0-9) or floating point number of up to 25 digits (9 are reserved for decimal places) and one decimal point.
The type() function returns 'N' for numeric variables and the is_float() and is_int() functions return .T. (true).
nVAR = -12.34 ? type("nVar") N ? is_float(nVar) .T. ? is_int(nVar) .T.
Recital Date Variables
Recital Logical Variables
Recital Datetime Variables
Recital Currency Variables
Recital Constants
Character Constants
A string of ASCII characters up to 65535 characters in length.
Delimited by double quotes "", or single quotes .
'goodbye' "RECITAL" "1234.56" "12/12/2009"
The type() function returns 'C' for character strings.
Numeric Constants
An signed or unsigned integer number of up to 16 digits (0-9) or floating point number of up to 25 digits (9 are reserved for decimal places) and one decimal point.
1234 1234.56
The type() function returns 'N' for numerics.
Date Constants
A combination of digits and separators delimited by curly braces {}. The format is determined by the set date and set century commands.
// set date is BRITISH, set century is OFF {21/01/09} // set date is AMERICAN, set century is ON {01/21/2009} // set date is GERMAN, set century is ON {21/01/2009} // set date is JAPAN, set century is ON {2009/21/01}
The type() function returns 'D' for dates.
Logical Constants
A choice of two values, .T. for true, .F. for false
The type() function returns 'L' for logicals.
Datetime Constants
A combination of digits and separators delimited by curly braces {}. The format is determined by the set date and set century commands.
// set date is BRITISH, set century is OFF {21/01/09 02:11:12 PM} // set date is AMERICAN, set century is ON {01/21/2009 05:09:09 AM} // set date is GERMAN, set century is ON {21/01/2009 11:30:00 PM} // set date is JAPAN, set century is ON {2009/21/01 12:10:10 AM}
The type() function returns 'T' for datetimes.
Currency Constants
A monetary value prefixed with a dollar sign, '$', and consisting of up to 9 digits and 4 decimal places.
$123456789.1234 $99
The type() function returns 'Y' for currency values.