# ZGG的变量

## 赋值（声明与变更)

ZGG的变量需要先声明，然后再使用

声明并初始化的语法是：

```
variableName := <expr>
```

改变变量值的语法:

```
variableName = <expr>
```

可以看到，声明并初始化时，用的是\*\*:=**，改变值的时候，用的是**=\*\*

> **为什么变量第一次使用的时候需要额外声明？**
>
> 这是由于ZGG设计原则决定的。ZGG希望设计为一门可读性好、语义明确的语言。明确的声明，可更好的保障作用域的明确、清晰

## 基本类型

ZGG的基本类型有：

| 类名        | 含义    | 说明                                            |
| --------- | ----- | --------------------------------------------- |
| Bool      | 布尔型   | 取值：_**true**_、_**false**_                     |
| Int       | 整型    |                                               |
| Float     | 浮点型   |                                               |
| Str       | 字符串型  |                                               |
| Bytes     | 字节数组  |                                               |
| Nil       | 空类型   | 唯一取值&#x4E3A;_**nil**_                         |
| Undefined | 未定义类型 | 唯一取值&#x4E3A;_**undefined**_. 常用于表示不存在的字段、标识符等 |
