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 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 -lang fb dialect.

Differences from QB
   * New to FreeBASIC

See also
   * Let
   * Operator =[>] (Assignment)
   * Operator Let (Assignment)

