当前位置:网站首页>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 用法一致,只是其含义表示跳出当前循环,进入下一循环。
边栏推荐
猜你喜欢

Oacle数据库使用问题

【应用SLAM技术建立二维栅格化地图】

How to determine the neural network parameters, the number of neural network parameters calculation

数据中台方案分析和发展方向

【剑指offer】左旋字符串,替换空格,还有类题!!!

Open Office XML 格式中的 Style 设计原理

WordpressCMS主题开发01-首页制作

Data middle platform program analysis and development direction

疫情当前,如何提高远程办公的效率,远程办公工具分享

php将form表单内容提交到数据库后中文变成??(问号)
随机推荐
collect awr
淘宝/天猫获得淘宝app商品详情原数据 API
Primavera P6 Professional 21.12 Login exception case sharing
WooCommerce电子商务WordPress插件-赚美国人的钱
27岁了,目前从事软件测试,听些老一辈的人说测试前途是IT里最差的,是这样吗?
数据库基础
【教程】区块链是数据库?那么区块链的数据存储在哪里?如何查看数据?FISCO-BCOS如何更换区块链的数据存储,由RocksDB更换为MySQL、MariaDB,联盟链区块链数据库,区块链数据库应用
浮点型在内存中的存储
unity shader 测试执行时间
网络模型(DeepLab, DeepLabv3)
Network Models (DeepLab, DeepLabv3)
错误代码: 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current
database transaction
Three handshakes and four waves
分割学习(loss and Evaluation)
Primavera Unifier advanced formula usage sharing
How to improve the efficiency of telecommuting during the current epidemic, sharing telecommuting tools
wordpress插件开发03-简单的all in one seo 插件开发
MySQL select count(*) count is very slow, is there any optimization solution?
验证拦截器的执行流程