yyz notes yyz notes
首页
  • RBAC权限设计
  • 架构图标设计
  • 账号体系
  • python基础
  • python高级
  • python模块
  • python设计模式
  • python数据结构与算法
  • django
  • django-DRF
  • flask
  • 直接设计开源pip包
  • 直接设计开源项目
  • python示例题/脚本
  • python面试题
  • golang基础
  • golang高级
  • golang常用组件
  • gin框架
  • es6
  • javascript
  • react
  • vue
  • TypeScript
  • mysql
  • redis
  • minio
  • elasticsearch
  • mongodb
  • 消息队列
  • 自动化测试
  • 操作系统

    • linux
    • windows
  • nginx
  • docker
  • k8s
  • git
  • ldap
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

益章

可乐鸡翅
首页
  • RBAC权限设计
  • 架构图标设计
  • 账号体系
  • python基础
  • python高级
  • python模块
  • python设计模式
  • python数据结构与算法
  • django
  • django-DRF
  • flask
  • 直接设计开源pip包
  • 直接设计开源项目
  • python示例题/脚本
  • python面试题
  • golang基础
  • golang高级
  • golang常用组件
  • gin框架
  • es6
  • javascript
  • react
  • vue
  • TypeScript
  • mysql
  • redis
  • minio
  • elasticsearch
  • mongodb
  • 消息队列
  • 自动化测试
  • 操作系统

    • linux
    • windows
  • nginx
  • docker
  • k8s
  • git
  • ldap
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • golang基础

    • 初识golang

    • golang基础语法

      • 变量
      • 常量
      • 基本数据类型
      • 复杂数据类型-指针
      • 复杂数据类型-数组array
      • 复杂数据类型-切片slice
      • 复杂数据类型-映射map
      • 复杂数据类型-列表list
      • nil空值-零值
      • 关键字与标识符
      • 运算符
        • 1. 赋值运算符
          • 代码示例
        • 2. 关系运算符
          • 代码示例
        • 3. 逻辑运算符
          • 代码示例
        • 4. 算术运算符
          • 注意点
          • 除号 /
          • 自增自减 ++ —
          • 代码示例
        • 5. 位运算符
          • 代码示例
        • 6. 其它运算符
          • 代码示例
        • 7. 运算符的优先级
      • 输入输出
    • golang流程控制

    • golang函数

    • golang内置函数

    • golang包

    • golang错误异常处理

    • golang面向对象(结构体)

    • golang文件处理

    • golang并发编程简介

    • golang并发编程-协程

    • golang网络编程

    • 反射 reflect

  • golang高级

  • 常用组件

  • gin

  • golang
  • golang基础
  • golang基础语法
YiZhang-You
2023-05-23
目录

运算符

运算符是—种特殊的符号,用以表示数据的运算、赋值和比较等

# 1. 赋值运算符

赋值运算符:=,+=,-=,=,/=,%= 赋值运算符就是将某个运算后的值,赋给指定的变量。

# 代码示例

package main

import "fmt"

func main() {
	// =
	var num1 int = 10
	fmt.Println(num1)
	var num2 int = (10+20)%3 + 3 - 7 //=右侧的值运算清楚后,再赋值给=的左侧
	fmt.Println(num2)

	// +=
	var num3 int = 10
	num3 += 20 //等价num3 = num3 + 20;
	fmt.Println(num3)

	//练习:交换两个数的值并输出结果:
	var a int = 8
	var b int = 4
	fmt.Printf("a = %v,b = %v\n", a, b)
	//交换:
	// 方式一:引入一个中间变量:
	var t int
	t = a
	a = b
	b = t
	fmt.Printf("a = %v,b = %v\n", a, b)

	// 方式二:多变量赋值形式
	var a1 int = 8
	var b1 int = 4
	b1, a1 = a1, b1
	fmt.Printf("a1 = %v,b1 = %v\n", a1, b1)
}

/*
	10
	-4
	30
	a = 8,b = 4
	a = 4,b = 8
	a1 = 4,b1 = 8
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

# 2. 关系运算符

关系运算符:==,!=,>,<,> =,<= 关系运算符的结果都是bool型,也就是要么是true,要么是false 关系表达式经常用在流程控制中

# 代码示例

package main

import "fmt"

func main() {
	fmt.Println(5 == 9) //判断左右两侧的值是否相等,相等返回true,不相等返回的是false, ==不是=
	fmt.Println(5 != 9) //判断不等于
	fmt.Println(5 > 9)
	fmt.Println(5 < 9)
	fmt.Println(5 >= 9)
	fmt.Println(5 <= 9)
}

/*
	false
	true
	false
	true
	false
	true
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 3. 逻辑运算符

逻辑运算符:&&(逻辑与/短路与),||(逻辑或/短路或),!(逻辑非) 用来进行逻辑运算的

# 代码示例

package main

import "fmt"

func main() {
	//与逻辑:&& :两个数值/表达式只要有一侧是false,结果一定为false
	//也叫短路与:只要第一个数值/表达式的结果是false,那么后面的表达式等就不用运算了,直接结果就是false  -->提高运算效率
	fmt.Println(true && true)
	fmt.Println(true && false)
	fmt.Println(false && true)
	fmt.Println(false && false)

	//或逻辑:||:两个数值/表达式只要有一侧是true,结果一定为true
	//也叫短路或:只要第一个数值/表达式的结果是true,那么后面的表达式等就不用运算了,直接结果就是true -->提高运算效率
	fmt.Println(true || true)
	fmt.Println(true || false)
	fmt.Println(false || true)
	fmt.Println(false || false)

	//非逻辑:取相反的结果:
	fmt.Println(!true)
	fmt.Println(!false)
}

/*
	true
	false
	false
	false
	true
	true
	true
	false
	false
	true
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

# 4. 算术运算符

算术运算符:+ ,-,,/,%,++,-- 介绍:算术运算符是对数值类型的变量进行运算的,比如,加减乘除。

# 注意点

# 除号 /

  • 两个int类型数据运算,结果一定为整数类型

  • 浮点类型参与运算,结果为浮点类型

	fmt.Println(10 / 3)   //两个int类型数据运算,结果一定为整数类型
	fmt.Println(10.0 / 3) //浮点类型参与运算,结果为浮点类型
1
2

# 自增自减 ++ —

  • 只能单独使用,不能参与到运算中去

  • ++,--只能在变量的后面,不能写在变量的前面 --a ++a 错误写法

	var a int = 10
	a++
	fmt.Println(a)
	a--
	fmt.Println(a)
1
2
3
4
5

# 代码示例

package main

import "fmt"

func main() {
	//+加号:
	//1.正数 2.相加操作  3.字符串拼接
	var n1 int = +10
	fmt.Println(n1)
	var n2 int = 4 + 7
	fmt.Println(n2)
	var s1 string = "abc" + "def"
	fmt.Println(s1)

	// /除号:
	fmt.Println(10 / 3)   //两个int类型数据运算,结果一定为整数类型
	fmt.Println(10.0 / 3) //浮点类型参与运算,结果为浮点类型

	// % 取模  等价公式: a%b=a-a/b*b
	fmt.Println(10 % 3) // 10%3= 10-10/3*3 = 1
	fmt.Println(-10 % 3)
	fmt.Println(10 % -3)
	fmt.Println(-10 % -3)

	//++自增操作:
	var a int = 10
	a++
	fmt.Println(a)
	a--
	fmt.Println(a)
	//++ 自增 加1操作,--自减,减1操作
	//go语言里,++,--操作非常简单,只能单独使用,不能参与到运算中去
	//go语言里,++,--只能在变量的后面,不能写在变量的前面 --a  ++a  错误写法
}

/*
	10
	11
	abcdef
	3
	3.3333333333333335
	1
	-1
	1
	-1
	11
	10
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

# 5. 位运算符

位运算符有七个,分为两类:

  • 逻辑位运算符:位与(&)、位或(|)、位异或(^)、非位(~)

  • 移位运算符:左移(<<)、右移(>>)、无符号右移(>>>)

# 代码示例

package main

import "fmt"

func main() {
	var a int = 1 // 00000001
	var b int = 5 // 00000101

	// & : 全一得一
	fmt.Println(a & b)

	// | :有一得一
	fmt.Println(a | b)

	// ^ : 相同为0,不同为1
	fmt.Println(b ^ a)

	// ~ :运算规则:0变为1,1变为0
}

/*
	1
	5
	4
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 6. 其它运算符

其它运算符:

  • & :返回变量的存储地址
  • :取指针变量对应的数值

# 代码示例

package main

import "fmt"

func main() {
	//定义一个变量:
	var age int = 18
	fmt.Println("变量地址:", &age) //age对应的存储空间的地址为: 0xc0000100b0
	var ptr *int = &age
	fmt.Println("ptr赋值为变量地址:", ptr)
	fmt.Println("指针地址:", &ptr)
	fmt.Println("指针取值:", *ptr)
	fmt.Printf("指针类型:%T", ptr)
}

/*
	变量地址: 0xc000122058
	ptr赋值为变量地址: 0xc000122058
	指针地址: 0xc000146020
	指针取值: 18
	指针类型:*int
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 7. 运算符的优先级

所谓优先级,就是当多个运算符出现在同一个表达式中时,先执行哪个运算符。

Go语言有几十种运算符,被分成十几个级别,有的运算符优先级不同,有的运算符优先级相同,请看下表。

优先级 分类 运算符 结合性
1 逗号运算符 , 从左到右
2 赋值运算符 =、+=、-=、*=、/=、 %=、 >=、 <<=、&=、^=、 =
3 逻辑或
4 逻辑与 && 从左到右
5 按位或
6 按位异或 ^ 从左到右
7 按位与 & 从左到右
8 相等/不等 ==、!= 从左到右
9 关系运算符 <、<=、>、>= 从左到右
10 位移运算符 <<、>> 从左到右
11 加法/减法 +、- 从左到右
12 乘法/除法/取余 *(乘号)、/、% 从左到右
13 单目运算符 !、*(指针)、& 、++、--、+(正号)、-(负号) 从右到左
14 后缀运算符 ( )、[ ]、-> 从左到右

注意:优先级值越大,表示优先级越高。

编辑 (opens new window)
关键字与标识符
输入输出

← 关键字与标识符 输入输出→

最近更新
01
配置yun源
05-24
02
linux-配置python虚拟环境
05-24
03
linux文件目录管理
05-24
更多文章>
Theme by Vdoing | Copyright © 2023-2023 yizhang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式