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 ...
随机推荐
- 【Python】pip的镜像安装异常解决方案
在安装pip的出现异常提示: ERROR: Could not find a version that satisfies the requirement pillow (from versions: ...
- 初探富文本之OT协同算法
初探富文本之OT协同算法 OT的英文全称是Operational Transformation,是一种处理协同编辑的算法.当前OT算法用的比较多的地方就是富文本编辑器领域了,常用于作为实现文档协同的底 ...
- 02-逻辑仿真工具VCS使用
逻辑仿真工具VCS使用 1 Makefile执行VCS仿真 # Makefile for simulating the full_adder.v with the simulator VCS # -- ...
- 经典问题 1 —— DAG 上区间限制拓扑序
问题描述 给定一个 DAG,求一个拓扑序,使得节点 \(i\) 的拓扑序 \(\in [l_i,r_i]\). 题解 首先进行一个预处理:对于所有 \(u\),令 \(\forall (v,u)\in ...
- 11月21日内容总结——多进程实现TCP服务端并发、互斥锁、线程及代码实现、GIL全局解释器锁、信号量、event事件、进程池和线程池、协程
目录 一.多进程实现TCP服务端并发 二.互斥锁代码实操 1.互斥锁的概念 2.互斥锁的使用 3.死锁现象 4. 小结 三.线程理论 进程 线程 线程简介 为什么要使用多线程? 多线程概念 多进程的优 ...
- 力扣---213. 打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房 ...
- Class path contains multiple SLF4J bindings解决
1.根据控制台查看冲突的日志依赖 本工程Maven依赖 <dependencies> <dependency> <groupId>org.slf4j</gro ...
- 什么是Http? http和https的区别
一.HTTP HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范 在计算机和网络世界有,存在不同的协议,如广播协议.寻址协议.路由协议等等 ...
- NuGet私有服务器ProGet Docker搭建和公司中实战用法
一.什么时候需要用到NuGet私有服务器 很多公司中架构师会搭建一个统一的项目基础架构模板,然后全部新项目都会拿这个基础架构来开发新的项目,那架构中就会有很多的中间件,比喻公司内部的封装好的Redis ...
- 2.17 win32 按钮事件的处理
按钮的本质就是窗口 点击查看代码 void CreateButton(HWND hwnd) { HWND hwndPushButton; HWND hwndCheckBox; HWND hwndRad ...