算术运算符
【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 版权协议,转载请附上原文出处链接和本声明。
侵权,请联系删除。