# Gambas/Assignments

## Equal or not equal

In gambas the = sign is used differently than it is in mathematics. It is used to assign a value to a variable.

When the equal sign shows up in the code, you should always think of it as:

• It is assigned
• A place in computer memory is reserved for the variable
• Fill the memory with this value

Then you will not run into illogical conclusions.

The following code is correct in Gambas. Try it out . What is the result?

```a = 5
a = a * 4
```

Translated to natural language this says:

```Assign 5 to the variable a
Multiply 4 with the old variable a and assign it to the new variable a.
```

Maybe the first person who started assignment in computers came from Arabia. Perhaps this is why we have to read the line from the right to left.

By the way: the result is 20.

How does this work in a little program: You need one command button to get the program going. The result is shown in the terminal window.

```PUBLIC SUB Button1_Click()
DIM a AS Integer
a = 5
a = a * 4
PRINT "a = ";a
END
```

A math teacher would not like these equations, but in gambas (or in basic in general) it is correct. Of course, you could make things clearer by using two different variables.

```PUBLIC SUB Button1_Click()
DIM a AS Integer
DIM b AS integer
a = 5
b = a * 4
PRINT b
END
```

The line

``` DIM a AS Integer
```

is not an assignment. It is a declaration of a variable as a datatype. In this case a is of the datatype integer.

## Theory of the assignment

The following code shows you in general the method of assignment:

```Variable = Expression
```

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

• A local variable.
• A function parameter.
• A global (class) variable.
• An array slot.
• An object public variable.
• An object property.

Example

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

```