Operator =[>] (Assign)

Assigns a value to a variable

Syntax
	KeyPgDeclareDeclare KeyPgOperatorOperator Let ( KeyPgByrefByRef lhs KeyPgAsAs T1, KeyPgByrefByRef rhs KeyPgAsAs T2 )

Usage
	lhs = rhs
		or
	lhs => rhs

			or, in the QB dialect,

	[ KeyPgLetLet ] lhs = rhs
		or
	[ KeyPgLet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 KeyPgStrStr or KeyPgWstrWStr.
	Assignment between arrays is not supported presently.

	Avoid confusion with KeyPgOpEqualOperator = (Equal), which also uses the '=' symbol.
	For this purpose and for solving some cases of ambiguity of the parser 
	(see KeyPgByrefFunction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 
	KeyPgOperator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 CompilerOptlang-lang qb dialect, this operator cannot be overloaded.
	* In the CompilerOptlang-lang qb dialect, an assignment expression can be preceded by 
	  the KeyPgLetLet keyword.

Differences from QB
	* None

See also 
	* KeyPgOpEqualOperator = (Equal)
	* KeyPgOpLetOperator Let (Assignment)
	* KeyPgSwapSwap
	* ProPgDataConversionCoercion and Conversion

