回复“ Go语言 ”即可获赠Python从入门到进阶共10本电子书
上篇文章中我们学习了Go语言基础中的变量,一篇文章带你了解Go语言基础之变量 ,这篇文章我们继续介绍Go语言基础知识,今天跟大家分享的是基础数据类型之运算符和流程控制,一起来学习下吧~
前言
Hey,大家好呀,我是星期八,这次咱们继续学习Go基础之运算符和流程控制叭。
运算符
运算符这个名字听着玄乎,其实我们平常见的很多了,就像 =, +, /之类的。
运算符主要分为
算数运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
下面就来简单了解以下叭。
算数运算符
算数运算符顾名思义,主要用在算数中,加减乘除了啥的
简单了解以下叭。
运算符
描述
+
相加
-
相减
*
相乘
/
相除
%
求余
++
自加
--
自减
关系运算符
运算符
描述
==
检查两个值是否相等,如果相等返回 True 否则返回 False
!=
检查两个值是否不相等,如果不相等返回 True 否则返回 False
>
检查左边值是否大于右边值,如果是返回 True 否则返回 False
>=
检查左边值是否大于等于右边值,如果是返回 True 否则返回 False
<
检查左边值是否小于右边值,如果是返回 True 否则返回 False
<=
检查左边值是否小于等于右边值,如果是返回 True 否则返回 False
逻辑运算符
运算符
描述
&&
逻辑 and 运算符。 如果两边的操作数都是 True,则为 True,否则为 False
| |
逻辑 or 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False
!
逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True
注: 逻辑运算符是很重要的,开发中经常用到。
位运算符
位运算符有些底层,特殊情况会用到
运算符
描述
&
参与运算的两数各对应的二进位相与。 (两位均为1才为1)
|
参与运算的两数各对应的二进位相或。 (两位有一个为1就为1)
^
参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 (两位不一样则为1)
<<
左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
>>
右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。
赋值运算符
赋值运算符在开发中用的也是比较多的。
运算符
描述
=
简单的赋值运算符,将一个表达式的值赋给一个左值
+=
相加后再赋值
-=
相减后再赋值
*=
相乘后再赋值
/=
相除后再赋值
%=
求余后再赋值
<<=
左移后赋值
>>=
右移后赋值
&=
按位与后赋值
| =
按位或后赋值
^=
按位异或后赋值
流程控制
在Go中,流程控制有以下几种。
if
语法
//方式一,一个if if 条件{ //执行语句 } //方式二,if 条件不成功执行else if 条件{ //if 成功语句 }else { //if 不成功语句 } //方式三,带有else if 得 if 条件1{ //if 成功语句 }else if 条件2{ //if 不成功,继续else if 条件 }else { //上面都不成功,执行else }
例子
package mainimport "fmt" func main () { var gender = "男" if gender == "男" { fmt.Println("男" ) } else if gender == "女" { fmt.Println("女" ) } else { fmt.Println("啥都不是???" ) } }
switch case
switch case和 if本质是一个东西,但是在某些场景, switch是比 if更加简洁的。
代码
package mainimport "fmt" func main () { var week = 3 switch week { case 1 : fmt.Println("周一" ) case 2 : fmt.Println("周二" ) case 3 : fmt.Println("周三" ) case 4 : fmt.Println("周四" ) case 5 : fmt.Println("周五" ) case 6 : fmt.Println("周六" ) case 7 : fmt.Println("周日" ) default : fmt.Println("星期八????" ) } }
注: 在Go中, switch是没有 case穿透 的。
Go的 switch可以 case多个值。
package mainimport "fmt" func main () { var week = 3 switch week { case 1 , 2 , 3 , 4 , 5 : fmt.Println("上班" ) case 6 : fmt.Println("周六睡懒觉" ) case 7 : fmt.Println("周日去旅游" ) default : fmt.Println("飞天了???" ) } }
for
标准for循环
语法
代码
package mainimport "fmt" func main () { for i := 0 ; i < 10 ; i++ { fmt.Println(i) } }
无限循环
谨慎执行!!!
package mainimport "fmt" func main () { for { fmt.Println("666" ) } }
for range
for ragne可以很方便循环数组,切片,字符串,map,channel等。
遍历数组示例
package mainimport "fmt" func main () { var student_list = [...]string {"张三" , "李四" , "王五" } for index, v := range student_list { fmt.Println(index, v) } }
注:
如果数组,切片,字符串 index 是下标,v是值 如果是map index 是键,v是对(值) 如果是通道 只有一个值,就是通道内的值
补充:
在Go中,只有for循环,没有while。
for循环就两种方式。
goto
goto可以通过标签在代码间无条件跳转,这就造成了一个局面,如果使用 gote过多,会造成逻辑混乱,跳来跳去。
所以,在开发中,要慎用,不到万不得已,不要使用。
示例
package mainimport "fmt" func main () { for i := 0 ; i < 10 ; i++ { for j := 0 ; j < 10 ; j++ { if j == 2 { goto breakTag } fmt.Printf("%v-%v\n" , i, j) } } breakTag: fmt.Println("结束for循环" )
}
总结
上述我们学习了Go基础之运算符和流程控制。 如果在操作过程中有任务问题,记得下面讨论区留言,我们看到会第一时间解决问题。
我是码农星期八,如果觉得还不错,记得动手点赞一下哈。 感谢你的观看。
--- ----- ------ ----- End --- ----- -- ------ ---
欢迎大家点赞 , 转发,转载, 感谢大家的相伴与支持
想加入学习群请在后台回复【 入群 】
万水千山总是情,点个【 在看 】行不行