社区编辑申请
注册/登录
一篇文章带你了解 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
    • switch case
  • for
    • 标准for
    • forrange
  • goto(慎用)

if

语法

  1. //方式一,一个if 
  2. if 条件{ 
  3.     //执行语句 
  4. //方式二,if条件不成功执行else 
  5. if 条件{ 
  6.     //if成功语句 
  7. }else
  8.     //if不成功语句 
  9. //方式三,带有else if得 
  10. if 条件1{ 
  11.     //if成功语句 
  12. }else if 条件2{ 
  13.     //if不成功,继续else if条件 
  14. }else
  15.     //上面都不成功,执行else 

例子

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     var gender = "男" 
  7.  
  8.     if gender == "男" { 
  9.         fmt.Println("男"
  10.     } else if gender == "女" { 
  11.         fmt.Println("女"
  12.     } else { 
  13.         fmt.Println("啥都不是???"
  14.   } 

switch case

switch case和if本质是一个东西,但是在某些场景,switch是比if更加简洁的。

代码

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     var week = 3 
  7.     switch week { 
  8.     case 1: 
  9.         fmt.Println("周一"
  10.     case 2: 
  11.         fmt.Println("周二"
  12.     case 3: 
  13.         fmt.Println("周三"
  14.     case 4: 
  15.         fmt.Println("周四"
  16.     case 5: 
  17.         fmt.Println("周五"
  18.     case 6: 
  19.         fmt.Println("周六"
  20.     case 7: 
  21.         fmt.Println("周日"
  22.     default://如果上面都没执行,会执行default 
  23.         fmt.Println("星期八????"
  24.   } 

注:在Go中,switch是没有case穿透的。

Go的switch可以case多个值。

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     var week = 3 
  7.     switch week { 
  8.     case 1, 2, 3, 4, 5: 
  9.         fmt.Println("上班"
  10.     case 6: 
  11.         fmt.Println("周六睡懒觉"
  12.     case 7: 
  13.         fmt.Println("周日去旅游"
  14.     default
  15.         fmt.Println("飞天了???"
  16.   } 

for

标准for循环

语法

  1. for 初始条件;判断条件;结束条件{ 
  2.     语句 

代码

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     for i := 0; i < 10; i++ { 
  7.         fmt.Println(i) 
  8.   } 

无限循环

谨慎执行!!!

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     for
  7.         fmt.Println("666"
  8.   } 

for range

for ragne可以很方便循环数组,切片,字符串,map,channel等。

遍历数组示例

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     var student_list = [...]string{"张三""李四""王五"
  7.     for index, v := range student_list { 
  8.         //index为下标,v是每一个的值 
  9.         fmt.Println(index, v) 
  10.   } 

注:

  1. 如果数组,切片,字符串 
  2.   index是下标,v是值 
  3. 如果是map 
  4.   index是键,v是对(值) 
  5. 如果是通道 
  6.   只有一个值,就是通道内的值 

补充:

在Go中,只有for循环,没有while。

for循环就两种方式。

goto

goto可以通过标签在代码间无条件跳转,这就造成了一个局面,如果使用gote过多,会造成逻辑混乱,跳来跳去。

所以,在开发中,要慎用,不到万不得已,不要使用。

示例

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.   for i := 0; i < 10; i++ { 
  7.     for j := 0; j < 10; j++ { 
  8.       if j == 2 { 
  9.         // 直接跳转到下面的 breakTag 标签 
  10.         goto breakTag 
  11.       } 
  12.       fmt.Printf("%v-%v\n", i, j) 
  13.     } 
  14.   } 
  15.   //要跳转的标签 
  16. breakTag: 
  17.   fmt.Println("结束for循环"

总结

上述我们学习了Go基础之运算符和流程控制。如果在操作过程中有任务问题,记得下面讨论区留言,我们看到会第一时间解决问题。 

我是码农星期八,如果觉得还不错,记得动手点赞一下哈。感谢你的观看。

本文转载自微信公众号「Go语言进阶学习」,可以通过以下二维码关注。转载本文请联系Go语言进阶学习公众号。

 

责任编辑:武晓燕 来源: Go语言进阶学习
相关推荐

2022-04-27 10:01:43

2022-02-16 10:03:06

对象接口代码

2022-05-20 14:54:33

数据安全数字化转型企业

2022-05-16 10:49:28

网络协议数据

2022-05-18 10:58:36

LinuxKali Linux

2022-05-10 16:04:40

编程语言PythonC语言

2021-10-16 10:17:51

2022-05-16 13:37:12

Sysrv僵尸网络微软

2022-05-17 15:51:32

数据中心运维能力基础设施

2022-05-16 10:36:08

GitHub开源项目

2022-05-09 11:19:12

CSS函数开源

2022-05-25 10:04:43

Go编程

2022-05-11 15:08:52

驱动开发系统移植

2022-04-18 09:41:14

Go架构设计

2022-05-17 10:33:58

设备开发鸿蒙操作系统

2022-05-17 16:56:33

开发工具前端

2022-05-09 11:57:39

云原生实践安全

2022-05-14 08:05:18

Linux内存管理

2022-05-26 10:13:22

C/C++GCC插件单元测试

2022-05-24 12:42:24

物联网

同话题下的热门内容

2022年优秀预测分析工具和软件大数据技术的成功案例及趋势使用替代数据的五个隐性成本为什么不能忽视建筑物中的数据分析?数据驱动业务的18个有效策略

编辑推荐

什么是数据分析的漏斗模型?数据分析师还吃香吗?用数据告诉你对比解读五种主流大数据架构的数据分析能力《狄仁杰之四大天王》影评分析(爬虫+词云+热力图)22个免费的数据可视化和分析工具推荐
我收藏的内容
点赞
收藏

51CTO技术栈公众号