Qore Programming Language Reference Manual  0.8.11.1
<value> Class Reference

Methods in this pseudo-class are available to be executed on any value type (even NOTHING); this is the root class for all pseudo-classes. More...

Inheritance diagram for Qore::<value>:

Public Member Functions

bool callp ()
 Returns False; this method is reimplemented in other types and will return True if the given expression is a callable value (ie closures or call references) More...
 
bool empty ()
 Returns True; this method will be reimplemented in container types where it may return False. More...
 
bool intp ()
 Returns False; this method is reimplemented in other types and will return True if the given expression can be converted to an integer. More...
 
AbstractIterator iterator ()
 Returns an iterator object for the value; the default iterator object returned is SingleValueIterator. More...
 
int lsize ()
 Returns 1; the return value of this method should give the list size of the value, which is normally 1 for non-lists (except for NOTHING where the size will be 0) and the number of the elements in the list for lists; this method will be reimplemented in other types where it may return other values. More...
 
int size ()
 Returns zero; this method will be reimplemented in container types where it may return a non-zero value. More...
 
bool sizep ()
 Returns True if the type can return a non-zero size (True for containers including binary objects and strings, False for everything else) More...
 
bool strp ()
 Returns False; this method is reimplemented in other types and will return True if the given expression can be converted to a string. More...
 
bool toBool ()
 Returns the boolean representation of the value; the default is False. More...
 
float toFloat ()
 Returns the floating-point representation of the value; the default is 0.0. More...
 
int toInt ()
 Returns the integer representation of the value; the default is 0. More...
 
number toNumber ()
 Returns the arbitrary-precision numeric representation of the value; the default is 0. More...
 
string toString ()
 Returns the string representation of the value; the default is an empty string. More...
 
string type ()
 Returns the string type for the value. More...
 
int typeCode ()
 Returns the type code for the value. More...
 
bool val ()
 Returns False; this method is reimplemented in other types and will return True if the given expression has a value that would be converted to True according to the rules described in %perl-bool-eval. More...
 

Detailed Description

Methods in this pseudo-class are available to be executed on any value type (even NOTHING); this is the root class for all pseudo-classes.

Member Function Documentation

bool <value>::callp ( )

Returns False; this method is reimplemented in other types and will return True if the given expression is a callable value (ie closures or call references)

Returns
False; this method is reimplemented in other types and will return True if the given expression is a callable value (ie closures or call references)
Code Flags:
CONSTANT
Example:
if ($n.callp())
printf("the reuslt of calling the value: %y\n", $n());
bool <value>::empty ( )

Returns True; this method will be reimplemented in container types where it may return False.

This pseudo-method will return False in all non-container types; use <value>::val() to check if a generic expression that might not be a container type has a value instead.

Returns
True; this method will be reimplemented in container types where it may return False
Code Flags:
CONSTANT
Example:
my int $i = 100;
if ($i.empty())
printf("%y: is empty (probably because it's a value of type %y)\n", $i, $i.type());
See also
<value>::val()
bool <value>::intp ( )

Returns False; this method is reimplemented in other types and will return True if the given expression can be converted to an integer.

Returns
False; this method is reimplemented in other types and will return True if the given expression can be converted to an integer
Code Flags:
CONSTANT
Example:
if ($n.intp())
printf("%y: can be converted to an integer: %d\n", $n, int($n));
See also
<string>::intp() for an example of an implementation of this method where the result depends on the value and not the type
AbstractIterator <value>::iterator ( )

Returns an iterator object for the value; the default iterator object returned is SingleValueIterator.

Returns
an iterator object for the value; the default iterator object returned is SingleValueIterator
Code Flags:
CONSTANT
Example:
map printf("+ %y\n", $1), $v.iterator();
Since
Qore 0.8.6
int <value>::lsize ( )

Returns 1; the return value of this method should give the list size of the value, which is normally 1 for non-lists (except for NOTHING where the size will be 0) and the number of the elements in the list for lists; this method will be reimplemented in other types where it may return other values.

Returns
1; the return value of this method should give the list size of the value, which is normally 1 for non-lists (except for NOTHING where the size will be 0) and the number of the elements in the list for lists; this method will be reimplemented in other types where it may return other values
Code Flags:
CONSTANT
Example:
printf("iterating %d element%s\n", $val.lsize(), $val.lsize() == 1 ? "" : "s");
foreach my any $element in ($val) {
do_something($element);
}
int <value>::size ( )

Returns zero; this method will be reimplemented in container types where it may return a non-zero value.

This pseudo-method will return 0 in all non-container types; use <value>::val() to check if a generic expression that might not be a container type has a value instead.

Returns
zero; this method will be reimplemented in container types where it may return a non-zero value
Code Flags:
CONSTANT
Example:
my int $i = 100;
if (!$i.size())
printf("%y: has size 0 (probably because it's a value of type %y)\n", $i, $i.type());
See also
bool <value>::sizep ( )

Returns True if the type can return a non-zero size (True for containers including binary objects and strings, False for everything else)

Code Flags:
CONSTANT
Returns
True if the type can return a non-zero size (True for containers including binary objects and strings, False for everything else)
See also
<value>::size()
Since
Qore 0.8.9
bool <value>::strp ( )

Returns False; this method is reimplemented in other types and will return True if the given expression can be converted to a string.

Returns
False; this method is reimplemented in other types and will return True if the given expression can be converted to a string
Code Flags:
CONSTANT
Example:
if ($n.strp())
printf("%y: can be converted to a string: '%s'\n", $n, string($n));
bool <value>::toBool ( )

Returns the boolean representation of the value; the default is False.

Code Flags:
CONSTANT
Returns
the boolean representation of the value; the default is False
Note
if <value>::intp() returns True, then the value can also be converted to a boolean value
Since
Qore 0.8.6
float <value>::toFloat ( )

Returns the floating-point representation of the value; the default is 0.0.

Code Flags:
CONSTANT
Returns
the floating-point representation of the value; the default is 0.0
Note
if <value>::intp() returns True, then the value can also be converted to a floating-point value
Since
Qore 0.8.6
int <value>::toInt ( )

Returns the integer representation of the value; the default is 0.

Code Flags:
CONSTANT

Use <value>::intp() to determine if the current value can be converted to an integer

Returns
the integer representation of the value; the default is 0
Since
Qore 0.8.6
number <value>::toNumber ( )

Returns the arbitrary-precision numeric representation of the value; the default is 0.

Code Flags:
CONSTANT
Returns
the integer representation of the value; the default is 0
Note
if <value>::intp() returns True, then the value can also be converted to an arbitrary-precision numeric value
Since
Qore 0.8.8
string <value>::toString ( )

Returns the string representation of the value; the default is an empty string.

Code Flags:
CONSTANT

Use <value>::strp() to determine if the current value can be converted to a string

Returns
the string representation of the value; the default is an empty string
Note
check pseudo-classes for each type for other variants of this method; some may take arguments to affect the output format
Since
Qore 0.8.6
string <value>::type ( )

Returns the string type for the value.

Returns
the string type for the value; see String Type Constants for possible return values for each type
Code Flags:
CONSTANT
Example:
my string $t = $n.type();
Note
It is faster and more efficient to use <value>::typeCode() for comparing data types
int <value>::typeCode ( )

Returns the type code for the value.

This method is recommended over <value>::type() or the type(any) or typename(any) functions for comparing data types as it is much faster and more efficient than the other alternatives (which work with string values instead of integer codes).

Returns
the type code for the value; see Type Code Constants for possible return values for each type
Code Flags:
CONSTANT
Example:
switch ($v.typeCode()) {
case NT_INT:
printf("%y: is an integer\n", $v);
break;
case NT_DATE:
printf("%y: is a date\n", $v);
break;
default:
printf("%y: is something else entirely\n", $v);
break;
}
bool <value>::val ( )

Returns False; this method is reimplemented in other types and will return True if the given expression has a value that would be converted to True according to the rules described in %perl-bool-eval.

This pseudo-method can be used to mimic perl's boolean evaluation when %strict-bool-eval is enabled; the return value of this method is the same as that of any value when evaluated in a boolean context when %perl-bool-eval is enabled (the default).

Prior to version 0.8.6, Qore implemented strict mathematical boolean evaluation by default (where any value must evaluate to a non-zero integer or floating-point value to be True), so this pseudo-method was implemented to provide the same functionality in qore. Note that as of qore 0.8.6, %perl-bool-eval is the default.

Returns
False; this method is reimplemented in other types and will return True if the given expression has a value; the return value of this method is the same as that of any value when evaluated in a boolean context when %perl-bool-eval is enabled (the default)
Code Flags:
CONSTANT
Example:
if ($n.val())
printf("%y: has a value\n", $n);
Note
use Exists Operator (exists) to tell if an expression has a value or not
See also