 NCL Home > Documentation > Language

# Variable Assignment / Reassignment

Consider y = x where x is previously defined. If Y is not defined, then it will have the same shape, values, and meta data as x. If y is already defined, then for the assignment to work, y must already have the same shape as x, and be coercible to that type. Any attributes that y possessed will be overwritten.

Value-only: For variables without metadata, a direct assignment is sufficient:

```    a = 5
b = (/1,2,3/)
```

```    uval = (/U/)
```
To reassign a variable to something with a different shape or a higher type, you must either use the delete procedure, or the reassignment operator, :=.

Using reassignment operator:

```      x = "This is a string"    ; x is a single string
; x = (/1,2,3/)             ; This would give you an error
x := (/1,2,3/)            ; Now x is a 1D array of integers
```
Using delete:

```      x = "This is a string"    ; x is a single string
delete(x)
x = (/1,2,3/)            ; Now x is a 1D array of integers
```