首页 > 其他分享 >Go语言中的运算符

Go语言中的运算符

时间:2022-08-29 17:05:09浏览次数:58  
标签:10 语言 fmt var 运算符 Println Go out

1. 算术运算符

1.1 加、减、乘、除,取余

var (
	a = 1
	b = 3
)

func main() {
	fmt.Println(a+b)
	fmt.Println(a-b)
	fmt.Println(a/b) // 0,这个没有python好,python直接输出0.33333333
	fmt.Println(a*b)
	fmt.Println(a%b)
}

out

4
-2
0
3
1

1.2 自增,自减

var (
	a = 1
	b = 3
)

func main() {
	a++ //这是独立的语句,不是赋值!python里这样写是会报错的
	b-- //它是直接修改了原变量的值!fmt.Println(a=a+1),fmt.Println(a++)这样都是错的!
	fmt.Println(a,b)
}

out

2 2

2. 关系运算符

看到这,想起来刚上大学那会学c语言的时候了,关系运算符在实际编码中最常用!

var (
	a = 1
	b = 3
)
func main() {
	fmt.Println(a == b) // go语言是强类型,相同类型的变量才能比较
	fmt.Println(a != b)
	fmt.Println(a >= b)
	fmt.Println(a <= b)
	fmt.Println(a < b)
}

out

false
true
false
true
true

3. 逻辑运算符

与或非在实际编码中常用,按位&、|、^也会使用到,可以很巧妙的实现我们需要的功能

3.1 逻辑与、逻辑或

age :=13
if age >=18 && age<=80{
	fmt.Println("事情要自己做哦")
}
if age<=18 || age>=80{
	fmt.Println("可以寻求帮助哦")
}

3.2 逻辑非

ismarried:=true
fmt.Println(ismarried)
fmt.Println(!ismarried)

out

true
false

3.3 按位与,或,非

func main() {
	// & 按位与(两位均位才为1)重要,但实际编程很少用 二进制
	fmt.Println(a&b)  //001 | 011
	// | 按位或(有一个为1就为1)重要
	fmt.Println(a|b)
	// ^ 亦或,不一样就为1
	fmt.Println(a^b)
}

out

1
3
2

3.4 左移右移

  • 左移
fmt.Println(1<<2) //0001 ->0100
fmt.Println(1<<10)  //0001-> 10 0000 0000  1024

out

4
1024
  • 右移
fmt.Println(5>>1) //0101-> 0010

out

2

注意移动范围

var m = int8(1) //只能移动8位  0000 0001
fmt.Println(m << 10)
fmt.Println(1<<10)
fmt.Println(int64(1)<<10)

out

0
1024
1024

4. 赋值运算符

4.1 基础赋值运算符

var x int  = 10
x +=1
fmt.Println(x) //不能直接打印fmt.Println(x +=1),python里这样写也会报错的!

x -=1
fmt.Println(x)

x *=10
fmt.Println(x)

x /=10
fmt.Println(x)

x %=2
fmt.Println(x)

out

11
10
100
10
0

4.2 逻辑赋值运算符

var x = 1
x <<=2     // 0001  ->0100
fmt.Println(x)

x &=2    // 0100 & 0010
fmt.Println(x)

x |=2   // 0000 | 0010
fmt.Println(x)

x ^=2  //0010 ^ 0010
fmt.Println(x)

x >>=2
fmt.Println(x)  // fmt.Println(x >>=2)是错的,但是可以fmt.Println(x >>2)

out

4
0
2
0
0

标签:10,语言,fmt,var,运算符,Println,Go,out
From: https://www.cnblogs.com/sunnybowen/p/16636490.html

相关文章

  • 在 Google Colab 中运行 Selenium WebDriver
    在GoogleColab中运行SeleniumWebDriverPhotoby克里斯·里德on不飞溅如果您需要在GoogleColab中为您的分析项目抓取数据,则无需事先构建单独的网络抓取工具......
  • 如何将本地化添加到 Django REST 框架
    如何将本地化添加到DjangoREST框架Django在本文中,我将为您提供有关如何使用I18N和DjangoRestFramework本地化DjangoRestAPI的指南。在开始本教程之前,我将......
  • go之包
    包的创建和管理gopath模式(已经弃用)1、gomod出现之前,所有的代码都要放在gopath的src路径下2、goenv可以看到gopath,/Users/liuqingzheng/go......
  • R语言中 par(mar = 。。。) par(mai = 。。。)
     par(mar=...)、par(mar=...)均为调整绘图区域与边框之间的距离。001、par(mfrow=c(2,2))plot(1:10,cex=3,col="red",pch=19)par(mar=c(7,7,7,......
  • go之函数
    函数定义函数是一块执行特定任务的代码。一个函数是在输入源基础上,通过执行一系列的算法,生成预期的输出。函数的声明语法funcfunctionname(parameternamety......
  • Go常见
    GO基础语法方法或函数调用时,传入参数一般都是值复制,除非是map、slice、channel、指针类型是引用传递短的变量声明(ShortVariableDeclarations),即自动推导,只能在函数......
  • Django使用Redis进行缓存详细流程
    1.背景和意义服务器数据非经常更新。若每次都从硬盘读取一次,浪费服务器资源、拖慢响应速度。而且数据更新频率较高,服务器负担比较大。若保存到数据库,还需要额外建立一张对......
  • tiangolo/uvicorn-gunicorn:python3.8 fastapi docker部署
    经验教训:1、gunicornlog文件固定放置在容器中目录:/code/logs,所以这个目录必需映射出来;2、按照fastapi官方建议,uvicorn运行目录:/app,所以这个目录要映射到代码目录;3、......
  • django2.x -- 报错"UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in posi
    解决方法:进入debug.py文件将331行代码修改编码方式为‘utf-8’......
  • C语言猜数字游戏
    C语言猜数字游戏题目十:猜数字游戏1.设计要求:有一定的容错功能,界面友好,功能齐全。2.设计提示:猜数字游戏规则:a)一个四位数,各位上的数不重复,从1到9。b)按以下......