[ LET ] Destination = Expression

Assigns the value of an expression to one of the following elements:

  • A local variable.

  • A function parameter.

  • A global or a class variable.

  • An array slot.

  • An object public variable.

  • An object property.

This cannot be used to set the value returned by a function. To assign the value of a function, use the RETURN statement.

Some instructions that return something may use the assignment syntax as well: EXEC, NEW, OPEN, RAISE, SHELL.


iVal = 1972
Name = "Gambas"
hObject.Property = iVal
cCollection[sKey] = Name

Assignments of embedded structures or arrays

Since 3.17

If the assignment Destination is actually a structure or an embedded array, then the contents of Expression is recursively copied in the Destination.

Of course, Expression is first converted to the datatype of Destination before the copy is done.

When an array is copied, if the source and the destination do not have the same number of elements, then the smallest number of elements is used to do the copy.

The copy is done only when the structure or the array are embedded. If not embedded, then structures and arrays are normal Gambas objects, and the assignment is just a reference copy.


Struct Person
  FirstName As String
  LastName As String
  Age As Integer
  BirthDate As Date
  Height As Float
End Struct

Private $aPeople[16] As Struct Person
Private $hFirst As Struct Person
Private $aOther[4] As Struct Person


' Copy the 4th people into $hFirst
$hFirst = $aPeople[3]
' Copy the four first people into $aOther
$aOther = $aPeople
' Only the four first elements of $aPeople are modified
$aPeople = $aOther

See also