【Go】运算符笔记

发布于:2025-03-19 ⋅ 阅读:(17) ⋅ 点赞:(0)

基本数学运算

Go 语言支持常见的 算术运算符,用于执行数学计算。

运算符 说明
+ 加法
- 减法
* 乘法
/ 除法
% 取余
++ 自增
-- 自减

整数运算只能得到整数部分

package main

import (
	"fmt"
	"math"
)

func main() {
	go_math()
}


func go_math() {
	x, y := 8, 5
	fmt.Printf("x = %d ,y = %d\n", x, y)
	fmt.Println("x/y除法运算:", x/y) //整数运算只能得到整数部分
	fmt.Println("float64(x)/float64(y)浮点运算:", float64(x)/float64(y))
	fmt.Println("x%y取余运算:", x%y)
	x++
	y--
	fmt.Println("x++自增运算:", x)
	fmt.Println("y--自减运算:", y)

	//除了上面的基本运算外,还有一个math库提供了许多数学函数和常量
	fmt.Println("除了上面的基本运算外,还有一个math库提供了许多数学函数和常量")
	fmt.Println("math.Pi=", math.Pi)
	fmt.Println("math.Pow幂运算", math.Pow(5, 3))
	fmt.Println("math.Abs取绝对值:", math.Abs(-100))
}

结果如下

x = 8 ,y = 5
x/y除法运算: 1
float64(x)/float64(y)浮点运算: 1.6
x%y取余运算: 3
x++自增运算: 9
y--自减运算: 4
除了上面的基本运算外,还有一个math库提供了许多数学函数和常量
math.Pi= 3.141592653589793
math.Pow幂运算 125
math.Abs取绝对值: 100

关系运算符

Go 语言中的 关系运算符 用于比较两个值,返回 truefalse
不能使用类似 5 < x < 15 的语法,需要拆分为 5 < x && x < 15

运算符 说明 示例(x=10 结果
< 小于 x < 5 false
> 大于 x > 5 true
<= 小于等于 x <= 10 true
>= 大于等于 x >= 15 false
== 等于 x == 10 true
!= 不等于 x != 10 false

逻辑运算符

用于 多个条件组合判断,支持 短路求值

运算符 说明 示例(x=10, y=5 结果
&& 逻辑与(AND) x > 5 && y > 0 true
|| 逻辑或(OR) x < 5 || y > 0 true
! 逻辑非(NOT) !(x > 5) false

短路求值机制:

  • &&(与):如果左侧为 false,右侧表达式不会执行
  • ||(或):如果左侧为 true,右侧表达式不会执行
if 5 > x && 15 > x { // 这里 x=10,5 > 10 为 false,短路后续判断
    fmt.Println(x)
}

位运算符

位运算符作用于整数的 二进制表示

运算符 说明 示例(5=0101, 6=0110 结果
& 按位与 5 & 6 (0101 & 0110) 0100 (4)
| 按位或 5 | 6 (0101 | 0110) 0111 (7)
^ 按位异或 5 ^ 6 (0101 ^ 0110) 0011 (3)
<< 左移 5 << 2 (0101 -> 10100) 20
>> 右移 5 >> 2 (0101 -> 0001) 1
fmt.Println(5 | 6)  // 7
fmt.Println(5 & 6)  // 4
fmt.Println(5 ^ 6)  // 3
fmt.Println(5 << 2) // 20
fmt.Println(5 >> 2) // 1

赋值运算符

赋值运算符用于给变量赋值或进行 复合运算

运算符 说明 示例
= 赋值 x = 10
+= 加后赋值 x += 5 (等同于 x = x + 5)
-= 减后赋值 x -= 3 (等同于 x = x - 3)
*= 乘后赋值 x *= 2 (等同于 x = x * 2)
/= 除后赋值 x /= 2 (等同于 x = x / 2)

其他运算符

运算符 说明
& 取地址
* 指针解引用
<- 通道通信符号
var a int = 10
var p *int = &a  // 取 a 的地址
fmt.Println(*p)  // 输出 10(解引用)