【Day 1】跟着Google学Go——A Tour of Go

在这里插入图片描述
图片来源:samjoule/Shutterstock


Day 1:

Go语言的循环结构只有for,而不像其他语言还有while,for循环的结构包括

  • 初始化语句:每次for循环开始之前执行,初始化语句往往是:=语句,并且其可见范围只在for循环内部
  • 条件表达式:每次迭代之前进行验证
  • post语句:每次迭代之后执行
    三个结构之间用分号隔开,和C、Java、Javascript不同,这三个结构没有用括号包裹起来,而每次循环执行的代码则必须用花括号包裹
for init statement; condition expression; post statement {
	...
	...
}

在这里插入图片描述
初始化语句以及post语句可以省略
在这里插入图片描述

如果把分号也省略了,就和其他语言中的while语法类似了
在这里插入图片描述
如果把条件表达式也省略了,就成了无限循环
例如Python中的:

while True:
	...
	...

在这里插入图片描述
if语句和for循环的结构类似,执行的代码必须用花括号包裹
在这里插入图片描述
与for循环类似,if语句也有初始化语句,且与判断语句间用分号分隔,可见范围也仅限if语句内
但习惯了Python,我不太习惯这种写法
在这里插入图片描述
通过if语句的初始化语句生命的变量在后面的所有else内都可见
在这里插入图片描述
一个练习:通过for循环,实现牛顿法求平方根的算法
在这里插入图片描述
switch语句是用来实现用更短的代码实现if-else语句,执行第一个与条件表达式相等的case内的代码
C、C++、Jaca、JavaScript、PHP都有switch语句,但不同的是,Go只执行被选中的case,其他case不会被执行,也就是说不可能多次触发case。事实上你可以想象Go在每个case内的代码最后自动加了“break”,并且和C语言不同,switch中的case后面不需要必须是常量,switch后面不需要必须是整形
在这里插入图片描述
case的验证顺序是从上到下
在这里插入图片描述
没有条件表达式的switch默认条件始终为true,所以就可以用来实现Python中的

if ...:
	...
elif ...:
	...
elif ...:
	...
else ...:
	...

在这里插入图片描述
defer语句将其后的函数执行推迟到了所在函数返回之前
在这里插入图片描述
defer语句会将函数调用压入栈中,所以执行顺序为先入后出
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值