Operator Let() (Assignment)

Assigns fields of a user defined type to a list of variables

Syntax
	Let( variable1 [, variable2 [, ... ]] ) = UDT_var
		or
	Let( variable1 [, variable2 [, ... ]] ) => UDT_var

Parameters
	variable1 [, variable2 [, ... ]]
		Comma separated list of variables to receive the values of the UDT 
		variable's fields.
	UDT_var
		A user defined type variable.

Description
	Assigns the values from the UDT_var variable's fields to the list of 
	variables.

	When the UDT KeyPgExtendsExtends a Base, the first variable (variable1) assigned by 
	the operator then corresponds to a Base instance (only the other 
	variables are those to receive the values of the data fields of the UDT
	).

	Union is not supported.

Example
	Type Vector3D
	   x As Double
	   y As Double
	   z As Double
	End Type

	Dim a As Vector3D = ( 5, 7, 9 )

	Dim x As Double, y As Double

	'' Get the first two fields only
	Let( x, y ) = a

	Print "x = "; x
	Print "y = "; y

Output:

	x =  5
	y =  7

	Type Parent
	   Dim As Integer p1, p2
	End Type

	Type Child Extends Parent
	   Dim As Integer c1, c2
	End Type

	Type GrandChild Extends Child
	   Dim As Integer gc1, gc2
	End Type

	Dim As GrandChild gc = Type(1, 2, 3, 4, 5, 6)

	Dim As Integer i1, i2
	Dim As Integer j1, j2
	Dim As Parent p
	Dim As Child c

	Let(c, i1, i2) = gc
	Print c.p1, c.p2, c.c1, c.c2, i1, i2

	Let(p, j1, j2) = gc
	Print p.p1, p.p2, j1, j2

Output:

	 1             2             3             4             5             6
	 1             2             5             6

Dialect Differences
	* Only available in the CompilerOptlang-lang fb dialect.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgLetLet
	* KeyPgOpAssignmentOperator =[>] (Assignment)
	* KeyPgOpLetOperator Let (Assignment)

