Operator =[>] (Assign)

Assigns a value to a variable

Syntax
   Declare Operator Let ( ByRef lhs As T1, ByRef rhs As T2 )

Usage
   lhs = rhs
      or
   lhs => rhs

         or, in the QB dialect,

   [ Let ] lhs = rhs
      or
   [ Let ] lhs => rhs

Parameters
   lhs
      The variable to assign to.
   T1
      Any numeric, boolean, string or pointer type.
   rhs
      The value to assign to lhs.
   T2
      Any type convertible to T2.

Description
   This operator assigns the value of its right-hand side operand (rhs) to 
   its left-hand side operand (lhs). The right-hand side operand must be 
   implicitly convertible to the left-hand side type (T1) (for conversion 
   of a boolean to an integer, false or true boolean value becomes 0 or -1 
   integer value). For example, you cannot assign a numeric value to a 
   string type; to do that, first convert the numeric value to a string 
   using Str or WStr.
   Assignment between arrays is not supported presently.

   Avoid confusion with Operator = (Equal), which also uses the '=' symbol.
   For this purpose and for solving some cases of ambiguity of the parser 
   (see Byref (Function Results)), the alternative symbol '=>' can be used 
   for assignments in place of '=' (same as already for the initializers).
      Note: the '=>' symbol has been chosen against '<=' (already the 
      operator 'Less Than Or Equal') and ':=' (':' used as statement 
      separator).

   This operator can be overloaded for user-defined types as a member 
   Operator using the appropriate syntax.

Example
   Dim i As Integer
   i = 420    ' <- this is the assignment operator

   If  i = 69 Then   '<-this is the equivalence operator 
     Print "ERROR: i should equal 420"
     End -1
   End If

   Print "All is good."
   End 0

   ' compile with -lang fblite or qb

   #lang "fblite"

   Dim i As Integer
   Let i = 300 ' <-alternate syntax

Dialect Differences
   * In the -lang qb dialect, this operator cannot be overloaded.
   * In the -lang qb dialect, an assignment expression can be preceded by 
     the Let keyword.

Differences from QB
   * None

See also 
   * Operator = (Equal)
   * Operator Let (Assignment)
   * Swap
   * Coercion and Conversion

