# 运算符与表达式

URL: https://caijiao.org/go/01-go-basic/09-operators
Source: docs/go/01-go-basic/09-operators.md
Description: 本节介绍 Go 语言中的运算符及表达式，包括算术、关系、逻辑等多种运算符的用法，帮助你进行数据计算和条件判断。

运算符是程序中对数据进行操作的符号。表达式是由变量、常量和运算符组成的计算式，最终产生一个结果。

## 1. 算术运算符

| 运算符 | 说明         | 示例        |
| ------ | ------------ | ----------- |
| +      | 加法         | a + b       |
| -      | 减法         | a - b       |
| *      | 乘法         | a * b       |
| /      | 除法         | a / b       |
| %      | 取模（余数） | a % b       |

示例：

```go
sum := 10 + 20     // 30
diff := 30 - 10    // 20
product := 4 * 5   // 20
quotient := 10 / 3 // 3（整数除法）
remainder := 10 % 3 // 1
````

## 2. 关系运算符

用于比较两个值，结果为布尔类型。

| 运算符 | 说明   | 示例     |
| --- | ---- | ------ |
| ==  | 等于   | a == b |
| !=  | 不等于  | a != b |
| >   | 大于   | a > b  |
| <   | 小于   | a < b  |
| >=  | 大于等于 | a >= b |
| <=  | 小于等于 | a <= b |


## 3. 逻辑运算符

用于逻辑判断，操作布尔值。

| 运算符  | 说明  | 示例       |
| ---- | --- | -------- |
| &&   | 逻辑与 | a && b   |
| \|\| | 逻辑或 | a \|\| b |
| !    | 逻辑非 | !a       |

示例：

```go
a, b := true, false
fmt.Println(a && b) // false
fmt.Println(a || b) // true
fmt.Println(!a)     // false
```

## 4. 赋值运算符

| 运算符 | 说明    | 示例      |
| --- | ----- | ------- |
| =   | 赋值    | a = 10  |
| +=  | 加并赋值  | a += 5  |
| -=  | 减并赋值  | a -= 3  |
| \*= | 乘并赋值  | a \*= 2 |
| /=  | 除并赋值  | a /= 4  |
| %=  | 取模并赋值 | a %= 3  |

## 5. 表达式示例

```go
x := 10
y := 3
z := (x + y) * 2 - 5
flag := (x > y) && (z < 20)
```

---

掌握运算符和表达式的用法，是编写各种逻辑和计算代码的基础。
