# 2.3 DeclarationsΒΆ

A declaration is an expression used to restrict the type of values that
can be assigned to variables. A colon `:`

is always used after a
variable or list of variables to be declared.

For a single variable, the syntax for declaration is

```
variableName : typeOrMode
```

For multiple variables, the syntax is

```
(, , ... ): typeOrMode
```

You can always combine a declaration with an assignment. When you do, it is equivalent to first giving a declaration statement, then giving an assignment. For more information on assignment, see Section ugIntroAssign and Section ugLangAssign . To see how to declare your own functions, see ugUserDeclare .

This declares one variable to have a type.

```
a : Integer
```

_{Type: Void}

This declares several variables to have a type.

```
(b,c) : Integer
```

_{Type: Void}

a , b and c can only hold integer values.

```
a := 45
```

_{Type: Integer}

If a value cannot be converted to a declared type, an error message is displayed.

```
b := 4/5
```

This declares a variable with a mode.

```
n : Complex ?
```

_{Type: Void}

This declares several variables with a mode.

```
(p,q,r) : Matrix Polynomial ?
```

_{Type: Void}

This complex object has integer real and imaginary parts.

```
n := -36 + 9 * %i
```

_{Type: Complex Integer}

This complex object has fractional symbolic real and imaginary parts.

```
n := complex(4/(x + y),y/x)
```

_{Type: Complex Fraction Polynomial Integer}

This matrix has entries that are polynomials with integer coefficients.

```
p := [ [1,2],[3,4],[5,6] ]
```

_{Type: Matrix Polynomial Integer}

This matrix has a single entry that is a polynomial with rational number coefficients.

```
q := [ [x - 2/3] ]
```

_{Type: Matrix Polynomial Fraction Integer}

This matrix has entries that are polynomials with complex integer coefficients.

```
r := [ [1-%i*x,7*y+4*%i] ]
```

_{Type: Matrix Polynomial Complex Integer}

Note the difference between this and the next example. This is a complex object with polynomial real and imaginary parts.

```
f : COMPLEX POLY ? := (x + y*%i)^2
```

_{Type: Complex Polynomial Integer}

This is a polynomial with complex integer coefficients. The objects are convertible from one to the other. See ugTypesConvert for more information.

```
g : POLY COMPLEX ? := (x + y*%i)^2
```

_{Type: Polynomial Complex Integer}