当前位置:网站首页>7 天找个 Go 工作,Gopher 要学的条件语句,循环语句 ,第3篇
7 天找个 Go 工作,Gopher 要学的条件语句,循环语句 ,第3篇
2022-08-11 10:06:00 【51CTO】
本篇博客重点内容
来到 Go 语言学习的第 3 篇博客,本篇将涉及两种 Go 语句,其一是分支,即条件判断,其二是循环。
条件判断语句又细分为 if 语句,if else 语句,if 嵌套语句,switch 语句,select 语句,对于以往的 Python 学习者,
上述内容只有 switch 和 select 语句需要反复学习一下。
select 语句类似于 switch 语句,只是 select 会随机选择一个可运行的 case 执行。
由于有其它语言的经验,这里重点看的就是语法结构。
if 语句
语法结构如下所示:
带上 else
之后,语法结构如下所示:
if 嵌套相关知识和其它语言一致,可以直接学习。
switch 语句
该语句在 Python 中不存在,但其它语言基本都有,语法结构如下所示:
switch 的 case 子句,默认带 break 语句,所以匹配到其中任意一个分支,都会终止语句,进入 switch 代码后继续运行。
switch 语句还可以用 type-switch
来判断变量类型,语法结构如下所示:
在 Go 语言中,case 是一个独立的代码块,而且执行完毕不会像 C 语言一样继续执行下一个 case,如果希望实现,可以使用 fallthrough
关键字实现,不过以橡皮擦的经验看,这个知识点不用刻意掌握,毕竟 switch 设计的初衷,就是不希望出现跨 case 运行的情况出现。
select 语句
select 与 switch 语句类似,它会随机执行一个可运行的 case,如果没有 case,就会阻塞,这里有一个新的概念,叫做 Go Channel,这部分我们预留一下,后续学到在细聊。
Go 循环
循环语句看了一下,并无太多特殊点,而且 Go 只支持 for 循环,知识点减少了一些,不过 Go 循环的语法与 Python 有一些差异,例如下述 Demo。
抽象一下语法结构,得到下述格式:
其中各参数说明如下:
init
:赋值表达式,给控制变量赋值;condition
:关系表达式或逻辑表达式,控制条件;post
:也是赋值表达式,对init
进行增减控制。
其中 init
和 post
为可选参数,可以省略,即下述代码正常运行。
上述 for
语句后面的分号 ;
可以省略,即下述代码。
这里与其它语言不同的是 for
后面的内容不需要括号,如果希望实现类似 while
的无限循环,直接省略 for
后面的内容即可。
这里必须要注意如下内容,其中涉及了 Go 的语法格式。
- for 后面的大括号,必须与 for 在同一行;
- Go 语言中也支持 continue 和 break 控制循环,而且有一个更高级的 break 用法,可以终止指定循环(即终止标号 label 所在的循环);
continue
标记与 break
用法一致,只是其含义表示跳出当前循环,进入下一循环。
边栏推荐
- 阿里二面:JVM调优你会吗?
- 数字钱包红海角逐,小程序生态快速引入可助力占领智慧设备入口
- Typora and basic Markdown syntax
- 使用.NET简单实现一个Redis的高性能克隆版(七-完结)
- 验证拦截器的执行流程
- 二维数组名的用途
- 代码签名证书可以解决软件被杀毒软件报毒提醒吗?
- The mathematical knowledge required for neural networks, the mathematical foundation of neural networks
- HDRP Custom Pass Shader 获取世界坐标和近裁剪平面坐标
- Adobe LiveCycle Designer 报表设计器
猜你喜欢
Primavera P6 Professional 21.12 登录异常案例分享
How to determine the neural network parameters, the number of neural network parameters calculation
MySQL select count(*) count is very slow, is there any optimization solution?
Ali Ermian: Do you know how to tune the JVM?
深度神经网络与人脑神经网络哪些区域有一定联系?
HDRP shader 获取阴影(Custom Pass)
pycharm cancel msyql expression highlighting
【教程】区块链是数据库?那么区块链的数据存储在哪里?如何查看数据?FISCO-BCOS如何更换区块链的数据存储,由RocksDB更换为MySQL、MariaDB,联盟链区块链数据库,区块链数据库应用
数组、字符串、日期笔记【蓝桥杯】
保证金监控中心保证期货开户和交易记录
随机推荐
HDRP shader 获取阴影(Custom Pass)
神经网络参数如何确定的,神经网络参数个数计算
Primavera Unifier custom report creation and print sharing
网络模型(U-net,U-net++, U-net+++)
SQL statement
Simple strokes on the Internet
wordpress插件开发03-简单的all in one seo 插件开发
假设检验:正态性检验的那些bug——为什么对同一数据,normaltest和ktest会得到完全相反的结果?
MySQL表sql语句增删查改_修改_删除
How to analyze the neural network diagram, draw the neural network structure diagram
QTableWidget 使用方法
最强大脑(2)
PowerMock for Systematic Explanation of Unit Testing
canvas图像阴影处理
Dreamweaver网页作业——紫罗兰永恒花园动漫价绍网页 7页,含有table表格,js表单验证还有首页视频。以及列表页。浮
数组、字符串、日期笔记【蓝桥杯】
HStreamDB v0.9 released: Partition model extension, support for integration with external systems
ES6:数值的扩展
数据库 SQL 优化大总结之:百万级数据库优化方案
海信自助机-HV530刷机教程