Go语言入门(五)运算符操作,从零基础到精通,收藏这篇就够了!

算术运算符

【1】+ ,-,*,/,%,++,–

【2】介绍:算术运算符是对数值类型的变量进行运算的,比如,加减乘除。

【3】代码展示:

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  错误写法``}

赋值运算符

【1】=,+=,-=,*=,/=,%=

【2】赋值运算符就是将某个运算后的值,赋给指定的变量。

【3】代码展示:

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",a,b)`        `//交换:`        `//引入一个中间变量:`        `var t int`        `t = a`        `a = b`        `b = t`        `fmt.Printf("a = %v,b = %v",a,b)

内存状态

关系运算符

【1】==,!=,>,<,> =,<=

    关系运算符的结果都是bool型,也就是要么是true,要么是false

【2】关系表达式经常用在流程控制中

【3】代码展示:

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)``}``   

逻辑运算符

【1】&&(逻辑与/短路与),||(逻辑或/短路或),!(逻辑非)

【2】用来进行逻辑运算的

【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)``}

实现方式不同

位运算符对整数在内存中的二进制位进行操作。

package main``import "fmt"``func main() {`    `/* & 两位均为 1 才为 1`    `| 两位有一个为 1 就为 1`    `^ 相异或 两位不一样则为 1`    `<< 左移 n 位就是乘以 2 的 n 次方。 “a<<b”是把 a="" 的各二进位全部左移="" b="" 位,<="" div="">`    `高位丢弃,低位补 0。`    `>> 右移 n 位就是除以 2 的 n 次方。`    `*/`    `var a int = 5 // 101`    `var b int = 2 // 010`    `fmt.Println("a&b=", a&b) // 000 值 0`    `fmt.Println("a|b=", a|b) // 111 值 7`    `fmt.Println("a^b=", a^b) // 111 值 7`    `fmt.Println("5>>2=", a>>b) // 5 右移 2 位 1`    `fmt.Println("5<<2=", a<<b) 5="" 左移="" 2="" 位="" 10100<="" div="">`    `fmt.Println("5<<1=", 5<<1) // 1010`    `fmt.Println("5>>1=", 5>>1) // 10`    `fmt.Println("7>>2=", 7>>2) // 1``}

其它运算符

【1】

& :返回变量的存储地址

*:取指针变量对应的数值

【2】代码练习:

package main``import "fmt"``func main(){`        `//定义一个变量:`        `var age int = 18`        `fmt.Println("age对应的存储空间的地址为:",&age)//age对应的存储空间的地址为: 0xc0000100b0`        `var ptr *int = &age`        `fmt.Println(ptr)`        `fmt.Println("ptr这个指针指向的具体数值为:",*ptr)``}``   

实现方式不同

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

TIPS: 为了提高优先级,可以加()

题外话

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。

内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,200多G的资源,不用担心学不全。
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要见下图即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值