[NAME]
ALL.dao.operator.misc

[TITLE]
其它运算符

[DESCRIPTION]


 0.1   String operators  

     
   1  string + string   # Concatenation;
   2  string += string  # String appending;
   3  
   4  string / string   # Path-like Concatenation;
   5  string /= string  # Path-like appending;
     
For path-like concatenation, the paths do not need to exist. For such operation, / and X:
, where X is any alphabetical character, are considered as absolute paths. Additionally, 
paths starting with $( (such as $(HOME)/abc etc.) are also considered as absolute (note t
hat the right brackets are not checked). All other paths are considered as relative, and 
for concatenation, ../ will represent one level higher path with respect to the current p
ath.

 0.2   Type Operators  

     
   1  # Operators:  ?=  ?<
   2  
   3  value1 ?= value2  # Type equal;
   4  value  ?< type    # Is type of;
     


 0.3   Ternery operator: ?:  

     
   1  expression1 ? expression2 : expression3
     
The value of expression2 is returned if expression1 is evaluated to true (non zero), othe
rwise the value of expression3 is returned.

 0.4   Miscellaneous operators  

     
   1  # Size operator:
   2  % none     # Data type size: 0;
   3  % int      # Data type size: 4 on 32 bits machine, or 8 on 64 bits machine;
   4  % float    # Data type size: 8 for double precision;
   5  % complex  # Data type size: 16 (double precision for both parts);
   6  % string   # Number of characters;
   7  % array    # Number of elements;
   8  % list     # Number of items;
   9  % map      # Number of key-value pairs;
  10  % tuple    # Number of items;
  11  
  12  # Complex conjugation operator:
  13  ~ complex  # Conjugation;
  14  
  15  # "in" or "not in" operator:
  16  int    in string  # Test if a character is in the string;
  17  string in string  # Test if the left operand is a substring of the right;
  18  any    in list    # Test if a value is contained in a list;
  19  any    in map     # Test if a key is in a map;
  20  any    in tuple   # Test if a value is in a tuple;
  21  
  22  int    not in string  # Test if a character is not in the string;
  23  string not in string  # Test if the left operand is not a substring of the right;
  24  any    not in list    # Test if a value is not contained in a list;
  25  any    not in map     # Test if a key is not in a map;
  26  any    not in tuple   # Test if a value is not in a tuple;