All Classes Namespaces Functions Variables Groups Pages
<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>:
[legend]

## 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:
  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 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:
  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
  - <value>::size()
  - <value>::val()

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:
  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
  - %perl-bool-eval
  - %strict-bool-eval