golang运算符
1.算术运算符
算术运算符有:+,-,*,/,%,++,--
1.1 加号(+)
- 表示正数
- 数字相加
- 字符串拼接
package main
import (
"fmt"
)
func main() {
num1 := +4
num2 := 8
str1 := "abc"
str2 := "def"
fmt.Println(num1 + num2) //将两个整数类型相加
fmt.Println(str1 + str2) //将两个字符串拼接
}
输出结果
12
abcdef
1.2 减号(-)
- 表示负数
- 数字相减
package main
import (
"fmt"
)
func main() {
num1 := -4
num2 := 8
fmt.Println(num1 - num2) //将两个整数类型相减
}
输出结果
-12
1.3乘号(*)
- 数字相乘
package main
import (
"fmt"
)
func main() {
fmt.Println(10 * 2)
}
输出结果
20
1.4除号(/)
- 数字相除
- int类型相除输出也为int类型
- float参与运算,结果一定为float类型
package main
import (
"fmt"
)
func main() {
fmt.Println(10 / 3)
fmt.Println(10.0 / 3)
}
输出结果
3
3.3333333333333335
1.5 取模(%)
- 等价于公式 "a-a/b*b"
package main
import "fmt"
func main() {
//取模公式:a-a/b*b
fmt.Println(10 % 4) //10-10/4*4=10-2*4=10-8=2
fmt.Println(-10 % 4) //-10--10/4*4=-10--2*4=-10--8=-2
fmt.Println(10 % -4) // 10-10/-4*-4=10--2*-4=10-8=2
fmt.Println(-10 % -4) //-10--10/-4*-4=-10-2*-4=-10--8=-2
}
输出结果
2
-2
2
-2
1.6 自增(++)
- ++等于加1。
- 只能当做一个独立语言使用,没有++a,+a操作
- 只能写在变量的后面(a++),不能写在变量的前面(++a)
package main
import "fmt"
func main() {
num1 := 20
num1++ //num1=20+1=21
num1++ //nim1=21+1=22
fmt.Println(num1)
}
输出结果
22
1.7 自减(--)
- --等于减1。
- 只能当做一个独立语言使用,没有--a,-a操作
- 只能写在变量的后面(a--),不能写在变量的前面(--a)
package main
import "fmt"
func main() {
num1 := 20
num1-- //num1=20-1=19
num1-- //nim1=19-1=18
fmt.Println(num1)
}
输出结果
18
2.赋值运算符
赋值运算符有:=,+=,-=,*=,/=,%=
2.1 直接赋值赋值(=)
package main
import "fmt"
func main() {
var n1 int = 10 //直接赋值
fmt.Println(n1)
var n2 int = (10 - 2) / (8 - 4) //先运算,然后将运算后的值赋值
fmt.Println(n2)
}
输出结果
10
2
2.2 运算之后赋值(+=,-+,/=,*=,%=)
package main
import "fmt"
func main() {
var n3 int = 8
n3 += 2 //等价于 n3 = n3 + 2
fmt.Printf("n3的值为:%v\n", n3)
var n4 float64 = 1.234
n4 -= 0.123 //等价于 n4 = n4 - 0.123
fmt.Printf("n4的值为:%v\n", n4)
var n5 int = 2
n5 *= 2 //等价于 n5 = n5 * 2
fmt.Printf("n5的值为:%v\n", n5)
var n6 int = 10
n6 %= 2 //等价于n6 = n6 % 2
fmt.Printf("n6的值为:%v\n", n6)
var n7 int = 9
n7 /= 2 //等价于n7 = n7 / 2
fmt.Printf("n7的值为:%v", n7)
}
//func main() {
// var n1 int = 10 //直接赋值
// fmt.Println(n1)
// var n2 int = (10 - 2) / (8 - 4) //先运算,然后将运算后的值赋值
// fmt.Println(n2)
//}
输出结果
n3的值为:10
n4的值为:1.111
n5的值为:4
n6的值为:0
n7的值为:4
3.关系运算符
关系运算符有:==,!=,>,<,>=,<=
返回只有bool类型,true或false
package main
import "fmt"
func main() {
fmt.Println(2 == 2)
fmt.Println(2 > 1)
fmt.Println(2 < 1)
fmt.Println(2 >= 1)
fmt.Println(2 <= 1)
}
输出结果
true
true
false
true
false
4.逻辑运算符
逻辑运算符有:&&,||,!
&&:表示与
||:表示或
!:表示非
package main
import "fmt"
func main() {
fmt.Println(true && true) //两边都为true结果为true
fmt.Println(true && false) //一边为false结果为false
fmt.Println(false && true) //一边为false结果为false
fmt.Println(false && false) //两边都为false结果为false
fmt.Println(true || true) //两边都为true结果为true
fmt.Println(true || false) //一边为true结果为true
fmt.Println(false || true) //一边为true结果为true
fmt.Println(false || false) //两边都为false结果为false
fmt.Println(!true) //取反
fmt.Println(!false) //取反
}
输出结果
true
false
false
false
true
true
true
false
false
true
5.其他运算符
其他运算符有:&,*
& :返回变量的存储地址
*:取指针变量对应的数值
package main
import "fmt"
func main() {
var n1 int = 1
fmt.Printf("n1的内存地址为:%v\n", &n1)
var n2 *int = &n1
fmt.Printf("n2的值为:%v\n", n2)
fmt.Printf("n2的内存地址指向为:%v\n", *n2)
}
输出结果
n1的内存地址为:0xc00001c0b8
n2的值为:0xc00001c0b8
n2的内存地址指向为:1
golang运算符的更多相关文章
- golang 运算符
/* 算术运算符 : + - * / % ++ -- 关系运算符 : == != > < >= <= 逻辑运算符 : && || ! 赋值运算符 : = += ...
- golang运算与循环等
一.golang运算符 1.算术运算符 + 相加- 相减* 相乘/ 相除% 求余++ 自增-- 自减 2.关系运算符 == 等于!= 不等于> 大于< 小于>= 大于等于<= ...
- golang之运算符
目录 一.golang之运算符 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 一.golang之运算符 Go 语言内置的运算符有:(比python少了一个成员 ...
- Golang的运算符优先级实操案例
Golang的运算符优先级实操案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.运算符优先级案例 运算符是用来在程序运行时执行数学或逻辑运算的,在Go语言中,一个表达式可以包 ...
- Golang的单目(一元)运算符-地址操作符和接收操作符
Golang的单目(一元)运算符-地址操作符和接收操作符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Golang的单目(一元)运算符概述 常见的地址操作符: &: ...
- Golang的运算符-位运算符
Golang的运算符-位运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算符概述 常见的位逻辑运算符: &: 位与运算符,表示AND(表示所有条件都得匹配), ...
- Golang的运算符-逻辑运算符
Golang的运算符-逻辑运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.逻辑运算符概述 !: 非运算符,表示NOT(有种取反的意思),如"!ture" ...
- Golang的运算符-比较运算符
Golang的运算符-比较运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.比较运算符概述 比较运算符也称为关系运算符,比较运算符返回的类型为bool类型,常见的比较运算符 ...
- Golang的运算符-赋值运算符
Golang的运算符-赋值运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.赋值运算符概述 常见的赋值运算符: =: 表示赋值运算符,如"a = 100" ...
- Golang的运算符-算数运算符
Golang的运算符-算数运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.算术运算符概述 常见的算术运算符: +: 可表示正号,如",结果为"Jaso ...
随机推荐
- 算法学习笔记(3): 倍增与ST算法
倍增 目录 倍增 查找 洛谷P2249 重点 变式练习 快速幂 ST表 扩展 - 运算 扩展 - 区间 变式答案 倍增,字面意思即"成倍增长" 他与二分十分类似,都是基于" ...
- 使用阿里云产品搭建PHPWIND
2.4 安装PhpWind论坛网站 1. 本小节主要是在ECS云主机中快速安装PhpWind论坛网站的基础环境. 2. 远程登录到 PhpWind 主机服务器 ECS实例.请使用本实验 ...
- vue中 beforeRouteLeave 生命周期函数
beforeRouteLeave需求描述在使用 element-UI的table 的时候,有这么一个需求.从一个页面切换到另一个页面,再切回来的时候,滚动条的位置不变. 需求:滚动浏览列表页,出现滚动 ...
- sync.Once 使用及解析
目录 前言 1. sync.Once 简介 2. sync.Once 源码解析 2.1 为什么 done 作为第一个字段 2.2 Do 方法的实现细节 2.3 其他重要细节 3. sync.Once ...
- 11月16日内容总结——OSI传输层之TCP与UDP协议、应用层简介、socket模块介绍及代码优化、半连接池的概念
目录 一.传输层之TCP与UDP协议 1.TCP协议(重要) 三次握手建链接(白话版) 三次握手专业版 四次挥手断连接(白话版) 四次挥手专业版 2.UDP协议 3.tcp和udp的对比 二.应用层简 ...
- 花了半个小时基于 ChatGPT 搭建了一个微信机器人
相信大家最近被 ChatGPT 刷屏了,其实在差不多一个月前就火过一次,不会那会好像只在程序员的圈子里面火起来了,并没有被大众认知到,不知道最近是因为什么又火起来了,而且这次搞的人尽皆知. 想着这么火 ...
- Linux06-常用命令 日期 日历 查找 过滤
1.date 日期 2.cal 日历 3.find 查找 4.locate 查找 5.grep 过滤 1.时间日期类 date指令-显示当前日期 1)指令: date (功能描述:显示当前时间) ...
- 解析sensor_msgs::PointCloud2 ROS点云数据
1.一个仿真的点云数据 header: seq: 2116 stamp: secs: 1586919439 nsecs: 448866652 frame_id: "LidarSensor1& ...
- 中南大学CSU2022-2023级C语言期中考试机试答案
卡在出线概率了.40%,没想到遍历时反了,我去. 1.时钟加法 1 #include<stdio.h> 2 3 #include<string.h> 4 5 #include& ...
- Windows常用指令与常见问题
关键目录 启动目录:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup hosts:C:\Windows\System32\dri ...